using System;

  class SingletonPattern {

  //  Singleton Pattern      Judith Bishop Dec 2006
  //  The public property protects the private constructor
    
    public sealed class Singleton {
      // Private Constructor
      Singleton() { }
      
      // Private object instantiated with private constructor
      static readonly Singleton instance = new Singleton();

      // Public static property to get the object
      public static Singleton UniqueInstance {
        get { return instance;}
      }
    }

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

      if (s1 == s2) {
        Console.WriteLine("Objects are the same instance");
      }
    }
  }