Wie kann ich eine statische Initialisierungsmethode in C # vor der Main () -Methode ausführen?

10

Gegeben eine statische Klasse mit einer Initialisierungsmethode:

%Vor%

Wie kann ich sicherstellen, dass der Initialisierer vor Main() ausgeführt wird?

Das Beste, was ich mir vorstellen kann, ist das Hinzufügen zu Foo :

%Vor%

Wird das funktionieren oder gibt es unvorhergesehene Vorbehalte? Und gibt es einen besseren Weg, dies zu tun?

    
Matt 29.11.2012, 09:37
quelle

3 Antworten

12

Führen Sie einfach die Initialisierung in einem statischen Konstruktor für Foo durch.

Aus der Dokumentation:

  

Ein statischer Konstruktor wird automatisch aufgerufen, um die Klasse zu initialisieren   bevor die erste Instanz erstellt wird oder statische Elemente sind   referenziert.

    
Jon 29.11.2012, 09:40
quelle
4

Es gibt statische Konstruktoren in C #, die Sie verwenden können.

%Vor%     
João Simões 29.11.2012 09:46
quelle
3

Bewegen Sie Ihren Code von einer internal static Methode zu einem static Konstruktor :

%Vor%

Auf diese Weise können Sie sicher sein, dass der statische Konstruktor bei der ersten Erwähnung Ihrer Foo -Klasse ausgeführt wird, sei es eine Konstruktion einer Instanz oder der Zugriff auf ein statisches Element.

    
SWeko 29.11.2012 09:45
quelle