Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Vererbung und casten untereinander
Grimmbizkit
myCSharp.de - Member



Dabei seit:
Beiträge: 310
Herkunft: Niederrhein

Themenstarter:

Vererbung und casten untereinander

beantworten | zitieren | melden

Hallo,

es ist schon spät, und so langsam sehe ich den Wald vor Bäumen nicht mehr, aber evtl kann mir jemand noch einen Tipp geben.

ich habe 2 Objekte:


class GpsSimple
{
	public String Name="";
	public GpsSimple()
	{
	}
}

class GpsExpert : Simple
{
	public String Koordinaten="";
	public GpsSimple()
	{
	}
}

Somit hat mein Objekt GpsExpert ja 2 Variablen (Name & Koordinaten)

Wie Caste ich ein GpsSimple -> GpsExpert?

Danke für jede Hilfe.

Gruß Simon
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15815
Herkunft: BW

beantworten | zitieren | melden

Das sind keine Variablen, das sind Eigenschaften (=> Properties) Felder.

Ansonsten bitte immer erst einen Blick in die Dokumentation
Umwandlung und Typkonvertierungen (C#-Programmierhandbuch)
Denke das kann man bei 9 Jahren im Forum durchaus erwarten :-)
private Nachricht | Beiträge des Benutzers
LaTino
myCSharp.de - Experte

Avatar #avatar-4122.png


Dabei seit:
Beiträge: 3062
Herkunft: Thüringen

beantworten | zitieren | melden

Zitat von Grimmbizkit
ich habe 2 Objekte:


class GpsSimple
{
	public String Name="";
	public GpsSimple()
	{
	}
}

class GpsExpert : Simple
{
	public String Koordinaten="";
	public GpsSimple()
	{
	}
}
Erst einmal: öffentliche Instanzvariablen sind pfui-bäh.
Zweitens: ich vermute, dass GpsExpert von GpsSimple und nicht von Simple abgeleitet sein soll. Wenn du in die Richtung casten willst, hast du natürlich ein Problem, denn für Objekte, die nicht boxed GpsExpert-Objekte sind, wird (GpsExpert)myObject fehlschlagen.

Schau dir für solche Flle IConvertible-Schnittstelle an.

LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7540
Herkunft: Waidring

beantworten | zitieren | melden

Hallo Abt,
Zitat
Das sind keine Variablen, das sind Eigenschaften
Hier sind es tatsächlich Variablen, genauer öffentliche Instanzvariablen.



Hallo Grimmbizkit,

öffentliche Instanzvariablen sollten im Sinne der Kapselung - ein Grundprinzip der OOP - tunlichst vermieden und durch Eigenschaften ersetzt werden.

Ergänzend zu LaTino Antwort schau dir auch [FAQ] Casten aber richtig: () / is / as an.

mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15815
Herkunft: BW

beantworten | zitieren | melden

Du hast recht; es sind keine Eigenschaften / Properties. Es sind öffentliche Felder - was man nicht macht.
Weil man es nicht macht hab ichs ganz einfach überlesen :-)
private Nachricht | Beiträge des Benutzers