سلام
در کد بالا نکته جالبی بود.بهتر اجرای کد زیر را ببینید:
namespace staticSingelton
{
class Program
{
static void Main(string[] args)
{
StaBase.GetInstance().StaBase1 = 1;
StaBase.GetInstance().StaBase2 = 2;
Sta1.Getinstance().Sta11 = 11;
Sta2.Getinstance().Sta21 = 21;
Write("Default Value");
Console.WriteLine("change Sta1.StaBase1 to 111");
Sta1.GetInstance().StaBase1 = 111;
Console.WriteLine("Effect in Sta2.StaBase1 !!!!");
Console.WriteLine("Sta2.StaBase1 = {0}", Sta2.GetInstance().StaBase1);
Console.WriteLine();
Write("Current Value");
Console.ReadKey();
}
private static void Write(string s)
{
Console.WriteLine(" ---- {0} ----", s);
Console.WriteLine("StaBase.StaBase1 = {0}", StaBase.GetInstance().StaBase1);
Console.WriteLine("StaBase.StaBase2 = {0}", StaBase.GetInstance().StaBase2);
Console.WriteLine("Sta1.StaBase1 = {0}", Sta1.GetInstance().StaBase1);
Console.WriteLine("Sta1.StaBase2 = {0}", Sta1.GetInstance().StaBase2);
Console.WriteLine("Sta2.StaBase1 = {0}", Sta2.GetInstance().StaBase1);
Console.WriteLine("Sta2.StaBase2 = {0}", Sta2.GetInstance().StaBase2);
Console.WriteLine("Sta1.Sta11 = {0}", Sta1.Getinstance().Sta11);
Console.WriteLine("Sta2.Sta21 = {0}", Sta2.Getinstance().Sta21);
Console.WriteLine();
}
/**********************************************/
public class StaBase
{
//private StaBase()
//{}
private static StaBase instance;
public static StaBase GetInstance()
{
Console.WriteLine("**** GetInstance from : StaBase");
if (instance == null)
instance = new StaBase();
return instance;
}
public int StaBase1 = 0;
public int StaBase2 = 0;
}
public class Sta1 : StaBase
{
private Sta1()
{ }
private static Sta1 instance;
public static Sta1 Getinstance()
{
Console.WriteLine("**** GetInstance from : Sta1");
if (instance == null)
instance = new Sta1();
return instance;
}
public int Sta11 = 0;
}
public class Sta2 : StaBase
{
private Sta2()
{ }
private static Sta2 instance;
public static Sta2 Getinstance()
{
Console.WriteLine("**** GetInstance from : Sta2");
if (instance == null)
instance = new Sta2();
return instance;
}
public int Sta21 = 0;
}
}
}
موفق باشید