Jak widać z mojego nicka jestem nowicjuszem, ucząc się o wzorze Singleton, gdzie mam jeden problem. Zanim dowiem się, że konstruktory statyczne są zawsze wykonywane przed standardowymi konstruktorami, ale w poniższym kodzie wynik jest inny, najpierw widzę ciąg "Insta", a następnie "Statyczny", dlaczego tak się dzieje?C# - Singleton Pattern
sealed class Singleton
{
private static readonly Singleton instance;
private Singleton()
{
Console.WriteLine("Insta");
}
static Singleton()
{
instance = new Singleton();
Console.WriteLine("Static");
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
class Program
{
static void Main()
{
Singleton s1 = Singleton.Instance;
}
}
powiązanymi: http://csharpindepth.com/Articles/General/Singleton.aspx – jbabey
Nie wiesz o uzasadnieniu swojej oczekiwaniu - „statyczny konstruktor nazywa pierwszy” nie oznacza "całego kodu w konstrukcie statycznym wykonanym magicznie przed wszystkimi wywołaniami do członków klasy" (konstruktor instancji w twoim przypadku). –