Znalazłem zachowanie C#, które chciałbym zrozumieć. Rozważmy klasę takiego:C# pole statyczne, konstruktor wystąpienia
public class SomeSingleton
{
public static SomeSingleton Default = new SomeSingleton();
private static int field = 0;
private SomeSingleton()
{
field = 1;
}
public int GetField()
{
return field;
}
}
Teraz nazwijmy metodę GetField():
var field = SomeSingleton.Default.GetField();
jestem coraz 0
jakby konstruktor instancja została pominięta. Czemu?
Co więcej, całkowicie wyeliminuj inicjator dla 'pola'. Wszystkie pola są ustawione na zero (lub 'null'), gdy obiekt jest najpierw tworzony (dla pól statycznych, gdy typ jest ładowany po raz pierwszy). –