title: Why isn't the static constructor from my base class called?
body: <p>Lets say I have 2 classes:</p>
  
  <pre><code>public abstract class Foo
  {
      static Foo()
      {
          print("4");
      }
  }
  
  public class Bar : Foo
  {
      static Bar()
      {
          print("2");
      }
  
      static void DoSomething()
      {
          /*...*/
      }
  }
  </code></pre>
  
  <p>I expected that after calling <code>Bar.DoSomething()</code> (assuming this is the first time I access the Bar class) the order of event will be:</p>
  
  <ol>
  <li>Foo's static constructor (again, assuming first access) > print <code>4</code></li>
  <li>Bar's static constructor  > print <code>2</code></li>
  <li>Execution of <code>DoSomething</code></li>
  </ol>
  
  <p>At the bottom line I expect <code>42</code> to be printed.<br>
  After testing, it seems that only <code>2</code> is being printed.<br>
  <a href="http://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy#Answer_to_the_Ultimate_Question_of_Life.2C_the_Universe.2C_and_Everything_.2842.29" rel="noreferrer">And that is not even an answer</a>.</p>
  
  <p>Can you explain this behavior?</p>