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
:
Wird das funktionieren oder gibt es unvorhergesehene Vorbehalte? Und gibt es einen besseren Weg, dies zu tun?
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.
Es gibt statische Konstruktoren in C #, die Sie verwenden können.
%Vor% Bewegen Sie Ihren Code von einer internal static
Methode zu einem static
Konstruktor :
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.
Tags und Links .net c# static-methods static-classes static-initialization