title: c# optional parameters in constructor
body: <pre><code>  class Program
      {
          static void Main(string[] args)
          {
              Program a = new Program();
              Console.ReadLine();
  
          }
  
          public Program()
          {
              Console.WriteLine("constructor without parameters");
          }
  
          public Program(int a = 0)
          {
              Console.WriteLine("optional parameters constructor");
          }
      }
  </code></pre>
  
  <p>Why is the second constructor used and why is it not forbidden (same signature)?</p>