Ich bin auf ein C# -Verhalten gestoßen, das ich gerne verstehen würde. Betrachten wir eine Klasse wie folgt:C# statisches Feld, Instanzkonstruktor
public class SomeSingleton
{
public static SomeSingleton Default = new SomeSingleton();
private static int field = 0;
private SomeSingleton()
{
field = 1;
}
public int GetField()
{
return field;
}
}
Jetzt wollen wir nennen GetField() -Methode:
var field = SomeSingleton.Default.GetField();
Ich erhalte 0
als ob der Instanzkonstruktor übersprungen wurde. Warum?
Besser noch, nehmen Sie den Initialisierer für 'Feld' ganz heraus. Alle Felder sind auf Null (oder "null") voreingestellt, wenn das Objekt zum ersten Mal erstellt wird (für statische Felder, wenn der Typ zuerst geladen wird). –