Ich habe ein paar Fragen zu statischen Konstruktor in C#.Was genau sind statische Konstruktoren in C#?
- Was genau sind Static Constructor und wie unterscheiden sie sich von nicht-statischen Konstruktor.
- Wie können wir sie in unserer Anwendung verwenden?
* * Herausgegeben
public class Test
{
// Static constructor:
static Test()
{
Console.WriteLine("Static constructor invoked.");
}
public static void TestMethod()
{
Console.WriteLine("TestMethod invoked.");
}
}
class Sample
{
static void Main()
{
Test.TestMethod();
}
}
Ausgang: Statische Konstruktor aufgerufen. TestMethod aufgerufen. Das bedeutet also, dass der statische Konstruktor einmal aufgerufen wird. wenn wir Test.TestMethod() erneut aufrufen; Der statische Konstruktor wird nicht aufgerufen.
Alle Zeiger oder einen Vorschlag würde '
Dank
Zum Beispiel werden Sie jedes Mal implizit erzeugt statische Konstrukteuren mit Sie initialisieren ein statisches Feld. –
@ SK-logic: Sie verwenden in dieser Situation keinen implizit erzeugten statischen Konstruktor: Sie verwenden einen Typinitialisierer. Es gibt keinen impliziten statischen Konstruktor. Eine Klasse hat entweder einen expliziten statischen Konstruktor oder keinen statischen Konstruktor. Storage-nitpick> –
LukeH
Überprüfen Sie die Ausgabe von ildasm/text für jede Klasse mit statischen Feldern, die mit einigen Werten initialisiert sind - Sie sehen dort einen implizit erzeugten statischen Konstruktor. –