जैसा कि आप मेरे उपनाम से देख सकते हैं मैं वास्तव में सिंगलटन पैटर्न के बारे में सीख रहा हूं, जहां मुझे एक समस्या है। इससे पहले कि मैंने सीखा है कि मानक रचनाकारों को मानक कन्स्ट्रक्टर से पहले हमेशा निष्पादित किया जाता है, लेकिन नीचे दिए गए कोड में, परिणाम अलग होता है, पहले मैं "इंस्टा" स्ट्रिंग को "स्टेटिक" देखता हूं, ऐसा क्यों होता है?सी # - सिंगलटन पैटर्न
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;
}
}
संबंधित: - "स्थिर निर्माता पहले बुलाया" http://csharpindepth.com/Articles/General/Singleton.aspx – jbabey
आपकी अपेक्षाओं के तर्क पर सुनिश्चित नहीं हैं इसका मतलब यह नहीं है कि "क्लास कन्स्ट्रक्टर में सभी कोड क्लासिक सदस्यों को सभी कॉल से पहले जादुई रूप से निष्पादित किया गया" (उदाहरण के लिए आपके मामले में कन्स्ट्रक्टर)। –