static void SingletonExample() { var singleton1 = Singleton.Singleton.GetSingleton(); var singleton2 = Singleton.Singleton.GetSingleton(); Console.WriteLine(singleton1.GetHashCode()); Console.WriteLine(singleton2.GetHashCode()); var singletonForMultithreading1 = SingletonForMultithreading.GetSingleton(); var singletonForMultithreading2 = SingletonForMultithreading.GetSingleton(); Console.WriteLine(singletonForMultithreading1.GetHashCode()); Console.WriteLine(singletonForMultithreading2.GetHashCode()); var singletonForMultithreadingWithoutLock1 = SingletonForMultithreadingWithoutLock.GetSingleton(); var singletonForMultithreadingWithoutLock2 = SingletonForMultithreadingWithoutLock.GetSingleton(); Console.WriteLine(singletonForMultithreadingWithoutLock1.GetHashCode()); Console.WriteLine(singletonForMultithreadingWithoutLock2.GetHashCode()); }
static SingletonForMultithreadingWithoutLock() { _singleton = new SingletonForMultithreadingWithoutLock(); }