title: .ctor is ambiguous because multiple kinds of members with this name exist in class
body: <p>I am replicating a situation that I am facing.</p>
  
  <p>Let's say we have an assembly, with C# class as: </p>
  
  <pre><code>public class Program
  {
      int n = 0;
  
      public void Print()
      {
          Console.WriteLine(n);
      }
  
      public Program()
      {
      }
  
      public Program(int num = 10)
      {
          n = num;
      }
  }
  </code></pre>
  
  <p>We refer the above assembly in VB.NET project and trying to create an instance of the Program class:</p>
  
  <pre><code>Module Module1 
      Sub Main()
          Dim p As New Program()
          p.Print()
          p = New Program(20)
          p.Print()
          Console.ReadLine()
      End Sub
  End Module
  </code></pre>
  
  <p>The VB.NET project is not compiling, giving error:</p>
  
  <p><strong>'.ctor' is ambiguous because multiple kinds of members with this name exist in class 'ConsoleApplication2.Program'.</strong></p>
  
  <p>From the error message we can see the the VB.NET compiler is not sure which constructor to call - as one constructor is parameterless and other with one optional parameter. This issue is occurring in VS2010/.NET 4 and not in VS2012/.NET 4.5. Also in C# it is not givng any issues, it successfully compiles and runs the code of object initiaization of Program class.</p>
  
  <p>Is there a way we can create Program class' instance in VB.NET + VS2010/.NET 4 without changing the constructors ?</p>