我正在尝试使用Internet中找到的代码创建线程安全的Singleton对象。下面是我的代码。
public class SingleInstanceClass
{
public static int hitCount;
private static readonly SingleInstanceClass instance = new SingleInstanceClass();
private SingleInstanceClass()
{
}
static SingleInstanceClass()
{ }
public static SingleInstanceClass GetInstance
{
get
{
return instance;
}
}
public void Display()
{
Console.WriteLine("Single Ton Class Function {0}",hitCount++);
}
}
//CLIENT CODE
class Program
{
static void Main(string[] args)
{
//Create 2 objects of the singleton class
SingleInstanceClass obj1 = SingleInstanceClass.GetInstance;
obj1.Display();
SingleInstanceClass obj2 = SingleInstanceClass.GetInstance;
obj2.Display();
SingleInstanceClass obj3 = SingleInstanceClass.GetInstance;
obj3.Display();
SingleInstanceClass obj4 = SingleInstanceClass.GetInstance;
obj4.Display();
SingleInstanceClass obj5 = SingleInstanceClass.GetInstance;
obj5.Display();//Validate if the address of obj1 and obj2 are same.
//If object.ReferenceEquals() returns true objects are same
//or else different.
//In class is return same object again and again
//It will print same objects.
if (object.ReferenceEquals(obj1, obj2))
{
Console.WriteLine("Same objects");
}
else
{
Console.WriteLine("Different objects");
}
Console.ReadKey();
}
}
}
我希望,
第一个实例将给出以下输出 单音级功能0 单音级功能1 单音级功能2 单音级功能3 单音级功能4 相同的对象
第二个实例将显示以下内容
单音类功能5 单音级功能6 单音级功能7 单音级功能8 单音级功能9 相同的对象
,依此类推。
因为这是单例类,所以所有客户端实例仅共享一个实例。但我在所有情况下都无法实现
单音类功能0 单音级功能1 单音级功能2 单音级功能3 单音级功能4 相同的对象
为什么重置点击数。什么会给我期望的输出。