title: C# static field, instance constructor
body: <p>I've come across a C# behavior that I would like to understand. Consider a class like this:</p>
  
  <pre><code>public class SomeSingleton
  {
      public static SomeSingleton Default = new SomeSingleton();
  
      private static int field = 0;
  
      private SomeSingleton()
      {
          field = 1;
      }
  
      public int GetField()
      {
          return field;
      }
  }
  </code></pre>
  
  <p>Now, let's call GetField() method:</p>
  
  <pre><code>var field = SomeSingleton.Default.GetField();
  </code></pre>
  
  <p>I am getting <code>0</code> as if the instance constructor was skipped. Why?</p>