Name der Instanz von program?

Die Programmiersprache C# und Programmierung im .NET Framework/Mono
Antworten
mark553
Beiträge: 1
Registriert: Do Aug 05, 2010 9:57 pm

Name der Instanz von program?

Beitrag von mark553 » Fr Aug 06, 2010 9:14 am

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?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Name der Instanz von program?

Beitrag von Xin » Fr Aug 06, 2010 9:43 am

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Name der Instanz von program?

Beitrag von cloidnerux » Fr Aug 06, 2010 11:01 am

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten