title: Why does C# use implicit void Main?
body: <p>I don't understand why C#'s <code>Main</code> function is void by default (in a console project for example). In C and C++ the standard clearly says main must return int, and using a return value makes sense because we can check that return value from an external program and see if the C/C++ application finished successfully or encountered an error.</p>
  
  <p>So my questions are:</p>
  
  <ol>
  <li>Why does Visual Studio declare <code>Main</code> as void?</li>
  <li>What's the best way of returning a value to the OS once a C# console application has finished executing?</li>
  </ol>