#region Singleton class Singleton { private static Singleton singleton; private static object lockObj = new object(); private Singleton() { } public static Singleton GetInstance() { if (singleton == null) { lock (lockObj) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; } } static void SingletonTest() { Singleton s1 = Singleton.GetInstance(); Singleton s2 = Singleton.GetInstance(); if (s1 == s2) { Console.WriteLine("The same instance"); } } #endregion