Laden...

Dynamisch den Typ casten

Erstellt von sven22 vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.026 Views
S
sven22 Themenstarter:in
154 Beiträge seit 2005
vor 18 Jahren
Dynamisch den Typ casten

Angenommen ich habe folgenden Namen einer Klasse:

String name = "test.MeineKlasse";

//nun möchte ich instanzieren

Type meinTyp = Type.GetType(name);
Object obj = Activator.CreateInstance(meinTyp);

//Jetzt würde ich gerne obj nach MeineKlasse casten also in etwa:

((meinTyp)obj).tuWas();

//Fehlermeldung 'meinTyp' is undefined

Jemand ne Idee wie man sowas macht?

Edit: Sorry kleiner Fehler in meiner Beschreibung:
((meinTyp)obj).tuWas();

6.862 Beiträge seit 2003
vor 18 Jahren

Der Cast müsste gehen wenn des Objekt von deinem Typen ist.
Des Object wird aber schon richtig erstellt, oder geht da schon was schief und du willst eventuell ne null Referenz casten.

Was kommt überhaupt für ne Meldung. Geht nicht ist immer ne sehr schlechte Fehlerbeschreibung.

Baka wa shinanakya naoranai.

Mein XING Profil.

S
sven22 Themenstarter:in
154 Beiträge seit 2005
vor 18 Jahren

Jup du hast recht. Es ist erst zur Laufzeit bekannt, welcher Objekttyp instanziert
werden soll. (Siehe meine Änderung oben)

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo sven22,

wenn der Typ erst zur Laufzeit bekannt ist, kannst du ja normalerweise keinen passenden Code dafür schreiben. Deshalb würde der Cast, wenn er denn gehen würde (was er nicht tut, wie du gemerkt hast), auch nichts nützen. Man kann nur in Typen casten, die zur Compile-Zeit bekannt sind.

Die Lösung heißt: Interfaces.

herbivore