C# dynamischer Klassenaufruf

Tyg3r

Erfahrenes Mitglied
Hi zusammen,

gibt es in C# die Möglichkeit eine Klasse anhand einer Variablen zu initialisieren?

Also in etwa so:

Code:
string class_name = "MyClass";

MyClass cMyClass = new class_name(); // Aufruf der Klasse über Variable

class MyClass {
     // Definition
}

Vielen Dank für Eure Hilfe!
Gruß Sebastian
 
Hi,

also, du willst den klassennamen während der Laufzeit eingeben und dann ein Ogjekt davon erstellen :-) ?

Korrigiert mich, wenn ich mich irre:
Der Compiler/Linker stopfen das Programm fertig in die exe-Datei,
wenn man ein Objekt einer Klasse macht, wird auch das dort hartkodiert.

Die einzige Möglichkeit, die mir einfällt, ist: Für jede Klasse die eingegeben werden kann, ein extra if... machen.

Was willst du dann überhaupt mit so einer Klasse? Auch wenn das Objekt erstellen könntest, gibt es noch immer bei jeder Klasse verschiedene Members, die das Programm kennen muss, wenn es sie verwendet.

Ausserdem gehört das eher nicht zu c/++ ;-)

Gruß
 
Hi.

Wie sheel bereits angedeutet hat: das Thema gehört nicht hierher. Fragen C# bzw. das .NET Framework betreffend gehören in das .NET Forum.

In .NET gibt es ein Reflection API mit dessen Hilfe man das bewerkstelligen kann:
C#:
Type t = Type.GetType("MeineKlasse");

 // Standard-Konstruktor aufrufen
Object o = t.GetConstructor(Type.EmptyTypes).Invoke(new Object[0]);
Gruß
 
Zurück