Unterschied zwischen statischem Konstruktor und Instanzkonstruktor C#

Unterschied zwischen statischem Konstruktor und Instanzkonstruktor C#

In diesem Artikel besprechen wir:

Statischer Konstruktor:

Der statische Konstruktor ist ein spezieller Konstruktor, der aufgerufen wird, bevor das erste Objekt der Klasse erstellt wird. Es wird verwendet, um statische Daten zu initialisieren oder um eine bestimmte Aktion auszuführen, die nur einmal ausgeführt werden muss.
Der Zeitpunkt der Ausführung des statischen Konstruktors ist nicht bekannt, aber er liegt definitiv vor der ersten Objekterstellung – möglicherweise zu diesem Zeitpunkt der Ladebaugruppe.

Regeln für statischen Konstruktor:

  • Eine Klasse kann nur einen statischen Konstruktor haben
  • Statischer Konstruktor darf keine Parameter haben
  • Der statische Konstruktor darf keinen Zugriffsbezeichner haben
  • Es wird verwendet, um die statischen Datenmitglieder der Klasse zu initialisieren
  • für eine beliebige Anzahl von Objekterstellung wird der statische Konstruktor nur einmal ausgeführt
  • Der statische Konstruktor wird ausgeführt, wenn die Klasse verwendet wird
  • Der statische Konstruktor kann vom Programmierer nicht explizit aufgerufen werden

Instanzkonstruktor:

Der Instanzkonstruktor wird verwendet, um Instanzdaten zu initialisieren. Der Instanzkonstruktor wird jedes Mal aufgerufen, wenn ein Objekt der Klasse erstellt wird.

Ähnlichkeiten zwischen statischem Konstruktor und Instanzkonstruktor:

Statische Konstruktoren sind wie Instanzkonstruktoren in folgender Hinsicht:
− Der Name des statischen Konstruktors muss mit dem Namen der Klasse identisch sein.
− Der Konstruktor kann keinen Wert zurückgeben.

Unterschied zwischen statischem Konstruktor und Instanzkonstruktor:

Statische Konstruktoren unterscheiden sich in folgenden Punkten von Instanzkonstruktoren:
− Statische Konstruktoren verwenden das Schlüsselwort static in der Deklaration.
− Es kann nur einen einzigen statischen Konstruktor für eine Klasse geben, und er kann keine Parameter haben.
− Statische Konstruktoren können keine Zugänglichkeitsmodifikatoren haben.

Beispiel:

 class RandomNumberClass
    {
        private static Random RandomKey; // Private static field
        static RandomNumberClass() // Static constructor
        {
            RandomKey = new Random(); // Initialize RandomKey
        }
        public int GetRandomNumber()
        {
            return RandomKey.Next();
        }
    }
    class Program
    {
        static void Main()
        {
            RandomNumberClass a = new RandomNumberClass();
            RandomNumberClass b = new RandomNumberClass();
            Console.WriteLine("Next Random #: {0}", a.GetRandomNumber());
            Console.WriteLine("Next Random #: {0}", b.GetRandomNumber());
        }
    }

Ausgabe:

Nächste Zufallsnummer:1920476323
Nächste Zufallsnummer:1895533763

Vielen Dank für Ihren Besuch !!