title: C# Singleton with public 'Instance' field instead of property
body: <p>Considering the 'standard' C# implementation of a singleton pattern with type initialisation:</p>
  
  <pre><code>public sealed class Singleton
  {
      private static readonly Singleton instance = new Singleton();
  
      public static Singleton Instance
      {
          get
          {
              return instance;
          }
      }
  
      private Singleton() { }
  }
  </code></pre>
  
  <p>Is there any point in the static property? If the static field is marked as readonly, then surely it cannot be written to from anywhere, including from outside the class. For a more terse implementation, would this work?:</p>
  
  <pre><code>public sealed class Singleton
  {
      public static readonly Singleton Instance = new Singleton();
      private Singleton() { }
  }
  </code></pre>
  
  <p>It seems fine to me but I've only ever seen the top one used so I wonder if there is anything wrong that I have missed.</p>