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();
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.
Jup du hast recht. Es ist erst zur Laufzeit bekannt, welcher Objekttyp instanziert
werden soll. (Siehe meine Änderung oben)
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