Witam
Poniżej jest kod realizujący wzorzec projektowy Singleton. Sam wzorzec rozumiem, natomiast mam pytanie odnośnie kolejności operacji w klasie.
using System;
class MainApp
{
static void Main()
{
Singleton s1 = Singleton.Instance();
Singleton s2 = Singleton.Instance();
if (s1 == s2)
{
Console.WriteLine("Objects are the same instance");
}
}
}
class Singleton
{
private static Singleton instance;
protected Singleton()
{
}
public static Singleton Instance()
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
Powyżej mamy dwie klasy. Czy inicjalizacja zmiennych w klasach odbywa się "od góry do dołu" kodu (obejmując dwie klasy), a następnie wykonywana jest metoda Main()? Druga możliwość, to wykonanie od razu metody, a przy odwołaniu z niej do innej klasy, zainicjowanie zmiennych tej klasy. Tryb debugowanie niewiele mi pomógł. Z góry dzięki za pomoc.
Pozdrawiam