Wie werden statische Variablen in C# initialisiert?
Initialisierung statischer Variablen in C#
In C# werden statische Variablen je nach Vorhandensein eines statischen Konstruktors und des Flags beforefieldinit unterschiedlich initialisiert .
Initialisierung ohne Statik Konstruktor
Wenn innerhalb einer Klasse kein statischer Konstruktor definiert ist, werden statische Variablen initialisiert:
- Wenn der Typ in den Speicher geladen wird.
- Vorher Es werden beliebige Instanzkonstruktoren aufgerufen.
- Eifrig, d. h. die Werte werden zugewiesen sofort.
Initialisierung mit einem statischen Konstruktor
Wenn ein statischer Konstruktor vorhanden ist:
-
beforefieldinit Flag:
- false: Statische Variablen werden vor dem statischen Konstruktor initialisiert wird aufgerufen.
- true: Statische Variablen werden beim ersten Zugriff träge initialisiert.
- .NET 4 und früher: beforefieldinit ist standardmäßig auf false eingestellt, was zu einer eifrigen Initialisierung führt .
- .NET 4.5 und höher: beforefieldinit ist standardmäßig auf „true“ eingestellt, was zu Lazy führt Initialisierung.
Fazit
Die Initialisierung statischer Variablen in C# hängt vom Vorhandensein eines statischen Konstruktors und dem Wert des beforefieldinit-Flags ab. Um eine ordnungsgemäße Initialisierung sicherzustellen, wird empfohlen, sich nicht auf ein bestimmtes Verhalten zu verlassen und einfach regulären Code zu verwenden, um auf statische Felder zuzugreifen.
Das obige ist der detaillierte Inhalt vonWie werden statische Variablen in C# initialisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?
