title: Does C# resolve dependencies among static data members automatically?
body: <p>If one static data member depends on another static data member, does C#/.NET guarantee the depended static member is initialized before the dependent member?</p>
  
  <p>For example, we have one class like:</p>
  
  <pre><code>class Foo
  {
      public static string a = "abc";
  
      public static string b = Foo.a + "def";
  }
  </code></pre>
  
  <p>When <strong>Foo.b</strong> is accessed, is it always "abcdef" or can be "def"?</p>
  
  <p>If this is not guaranteed, is there any better way to make sure depended member initialized first?</p>