Laden...

Vererbung und casten untereinander

Erstellt von Grimmbizkit vor 8 Jahren Letzter Beitrag vor 8 Jahren 933 Views
G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 8 Jahren
Vererbung und casten untereinander

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

16.806 Beiträge seit 2008
vor 8 Jahren

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 😃

3.003 Beiträge seit 2006
vor 8 Jahren

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)

6.911 Beiträge seit 2009
vor 8 Jahren

Hallo Abt,

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!"

16.806 Beiträge seit 2008
vor 8 Jahren

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 😃