Я пытаюсь создать потокобезопасный объект 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
Одинаковые объекты
Почему счетчик сбрасывается. Что бы дать результат я ожидаю ..