示例#1
0
 /// <summary>
 /// Returns singleton instance
 /// </summary>
 /// <returns></returns>
 public static LoggerNoThreadSafe GetInstance()
 {
     //If instance has not yet been created.
     if (loggerInstance == null)
     {
         loggerInstance = new LoggerNoThreadSafe();
         return(loggerInstance);
     }
     //return the instance instead.
     return(loggerInstance);
 }
示例#2
0
        public static void TestSingletonPattern()
        {
            Singleton_Pattern.LoggerNoThreadSafe logger1 = Singleton_Pattern.LoggerNoThreadSafe.GetInstance();
            Singleton_Pattern.LoggerNoThreadSafe logger2 = Singleton_Pattern.LoggerNoThreadSafe.GetInstance();

            Console.WriteLine("Same instance? {0}", Object.ReferenceEquals(logger1, logger2).ToString());

            Singleton_Pattern.LoggerSimpleThreadSafe logger3 = Singleton_Pattern.LoggerSimpleThreadSafe.GetInstance();
            Singleton_Pattern.LoggerSimpleThreadSafe logger4 = Singleton_Pattern.LoggerSimpleThreadSafe.GetInstance();

            Console.WriteLine("Same instance? {0}", Object.ReferenceEquals(logger3, logger4).ToString());

            Singleton_Pattern.LoggerFullLazy logger5 = Singleton_Pattern.LoggerFullLazy.GetInstance();
            Singleton_Pattern.LoggerFullLazy logger6 = Singleton_Pattern.LoggerFullLazy.GetInstance();

            Console.WriteLine("Same instance? {0}", Object.ReferenceEquals(logger5, logger6).ToString());
        }