Entwickler-Ecke
Basistechnologien - Objekt aus Text erstellen...
andyp17 - Mi 16.02.11 14:20
Titel: Objekt aus Text erstellen...
Hallo,
Ich schreibe ein Programm, das eine Menüleiste mit mehreren Unterpunkten hat. Jeder dieser Auswahlmöglichkeiten öffnet ein neues Fenster (frmTable). Diese Form ist für jede Auswahlmöglichkeit die gleiche - nur wird je nach Menüpunkt ein anderes Objekt in frmTable instanziiert. Doch wie mach ich das am elegantesten? Meine Idee war nun in der Tag-Eigenschaft jedes Menüpunkts den Namen des aufzurufenden Objekts zu übergeben (z.B. "TableUser"). Und aus diesem Namen "TableUser" soll dann eine Instanz der Klasse TableUser erstellt werden. Wie geht das?
Ich hoffe ihr wisst, was ich meine... :)
Danke!
Christian S. - Mi 16.02.11 14:31
Hallo!
Die Instanz einer Klasse erstellen, wenn Du nur den Namen als String hast, kannst Du über Reflection:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| public class Test { }
public partial class Form1 : Form {
private void button1_Click(object sender, EventArgs e) { var t = Type.GetType("WindowsFormsApplication1.Test"); var test = Activator.CreateInstance(t);
MessageBox.Show(test.ToString()); } } |
Du wirst aber das Problem haben, dann auf die Methoden zuzugreifen, denn
test ist in obigem Beispiel vom Typ
object. Eine Lösung könnte hier sein, wenn alle in Frage kommenden Typen ein gemeinsames Interface implementieren, dann kann man dahin casten und dann mit dessen Methoden arbeiten.
Grüße
Christian
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!