title: Why does C# set private variables before the base constructor, while VB.NET does the opposite?
body: <p>There was a question comparing C# code and VB.NET and the results between the seemingly identical code were entirely different.
  (<a href="https://stackoverflow.com/questions/711586/why-c-is-always-winning-over-vb-net">I wrote a program that allow two classes to &quot;fight&quot;. For whatever reason C# always wins. What&#39;s wrong with VB.NET?</a>)</p>
  
  <p>The explanation given is that C# will initialize the class fields, then call the base constructor, but VB.NET does the exact opposite.  </p>
  
  <p>My question is - why?  </p>
  
  <p>Is there a technical reason for the languages to be different?  At first glance, it seems that either approach is equally valid, but I can't fathom why they wouldn't have selected the SAME approach.  </p>
  
  <p>EDIT:  As 'Jeffrey L Whitledge' has pointed out, VB6 did not have inheritance, so I don't think we can say 'to keep VB.NET and VB6 more closely related'.</p>