title: Why when I try to instantiate a class instance, do I get StackOverFlowException?
body: <p>I keep getting <code>StackOverFlowException</code> whenever I instantiate an instance of A class. I know it has got something to do with the fact that <code>A.b</code> field is of type derived from class A. But why would that cause an exception?</p>
  
  <pre><code>static void Main(string[] args)
  {
       A a = new A(); // exception
  }
  
  class A 
  {
      private B b = new B();
  }
  
  class B:A {}
  </code></pre>
  
  <p>thank you</p>