Anlamak istediğim bir C# davranışıyla karşılaştım. Böyle bir sınıf düşünün:C# statik alan, örnek yapıcı
Şimdipublic class SomeSingleton
{
public static SomeSingleton Default = new SomeSingleton();
private static int field = 0;
private SomeSingleton()
{
field = 1;
}
public int GetField()
{
return field;
}
}
, en GetField() yöntemini çağırın bakalım: örnek yapıcı atlandı sanki ben 0
alıyorum
var field = SomeSingleton.Default.GetField();
. Niye ya?
Daha da iyisi, "alan" için başlatıcıyı tamamen kaldırın. Nesne ilk oluşturulduğunda tüm alanlar sıfırlanır (veya 'null') (statik alanlar için, tür ilk yüklendiğinde). –