Seite 1 von 1

Name der Instanz von program?

Verfasst: Fr Aug 06, 2010 9:14 am
von mark553
Hallo.

Ich versuche gerade von einer Klasse Form1 auf eine Variable in der Klasse Program zuzugreifen. Allerdings weiß ich nicht, wie die Instanz von Program heißt. Als zweite Lösung habe ich im Internet bereits das hier gefunden (Beispiel):

Code: Alles auswählen

using System.Reflection;
...
string MyString = this.GetType().InvokeMember("mystring", BindingFlags.Instance | BindingFlags.GetField | BindingFlags.NonPublic, null, this, null) as string;
Dieser Code will aber nach wie vor eine Instanz mit dem Namen mystring in der Form1-Klasse zugreifen. Meine Fragen sind nun:
1. Wie heißt die Instanz von Program, die C# verwendet? und
2. Kann ich diese vielleicht einfach mit dem oben beschriebenen Code suchen?

Re: Name der Instanz von program?

Verfasst: Fr Aug 06, 2010 9:43 am
von Xin
Willkommen auf proggen.org.

Ich will gerne versuchen, Dir zu helfen, doch ich verstehe "Wie heißt die Instanz von Programm, die C# verwendet" nicht.

Was meinst Du damit?
Es gibt eine Klasse "Program", soviel habe ich verstanden... wenn Du sie nicht kennst, hast Du dafür auch keinen this-Pointer!? Ungefähr hier geht mein Unverständnis Deiner Frage los...

Vielleicht beschreibst Du mal, was Du eigentlich tun möchtest, also was Du für Daten hast und was Du am Schluss von diesen Daten wissen möchtest.

Re: Name der Instanz von program?

Verfasst: Fr Aug 06, 2010 11:01 am
von cloidnerux
Die Klasse "Programm" kannst du nicht nutzen, da sie als Statische Klasse kaum instanzierbar ist. Du kannst entweder dem Konstruktor der Klasse Form1 einen Parameter für den String oder die Referenz auf Programm oder einer Data-Wrapper klasse geben. Bei der Inizierung von Form1 in der Klasse Programm übergibst du das dann nur noch.
System.Reflection solltest du vergessen, das nutzt dir nur was, wenn du Klassenrefernzen hast.

Willkommen im Forum.