singletontheorylazy.cs

  using System;

  class SingletonPattern {

    //  Singleton Pattern      Judith Bishop Nov 2007
    //  The public property protects the private constructor
      
    public class Singleton {
      // Private constructor
      Singleton () { }
      
      // Nested class for lazy instantiation
      class SingletonCreator {
        static SingletonCreator () {}
        // Private object instantiated with private constructor
        internal static readonly
        Singleton uniqueInstance = new Singleton();
      }

      // Public static property to get the object
      public static Singleton UniqueInstance {
        get {return SingletonCreator.uniqueInstance;}
      }
    }

    static void Main () {
      Singleton s1 = Singleton.UniqueInstance;
      Singleton s2 = Singleton.UniqueInstance;

      if (s1 == s2) {
        Console.WriteLine("Objects are the same instance");
      }
    }
  }
原文地址:https://www.cnblogs.com/shihao/p/2500510.html