title: Ambiguous constructor call error
body: <p>I have a class called <code>Test</code> which has a <code>constructor</code> to accept <code>Action&lt;T&gt;</code> and the other one accepts <code>Func&lt;T,T&gt;</code>. Please see the below snippet.</p>
  
  <pre><code>public class Test&lt;T&gt;
  {
      //constructors
      public Test() { }
      public Test(Action&lt;T&gt; action) { }
      public Test(Func&lt;T, T&gt; action) { }
  
      //methods with same signature of constructor
      public void MyMethod1(Action&lt;T&gt; action) { }
      public void MyMethod2(Func&lt;T, T&gt; action) { }
  }
  
  
  public partial class MainWindow : Window
  {
      public MainWindow()
      {
          InitializeComponent();
          Test&lt;string&gt; t1 = new Test&lt;string&gt;(this.MyMethod1);
          Test&lt;string&gt; t2 = new Test&lt;string&gt;(this.MyMethod2);
  
          Test&lt;string&gt; t = new Test&lt;string&gt;();
          t.MyMethod1(MyMethod1);
          t.MyMethod2(MyMethod2);
      }
  
      public void MyMethod1(string value) { }
      public string MyMethod2(string value) { return string.Empty; }
  
  }
  </code></pre>
  
  <p>But below lines throws an ambiguous call error</p>
  
  <pre><code>Test&lt;string&gt; t1 = new Test&lt;string&gt;(this.MyMethod1);
  Test&lt;string&gt; t2 = new Test&lt;string&gt;(this.MyMethod2);
  </code></pre>
  
  <p>and the interesting point is, I have two methods with the same signature of my <code>Test</code> class <code>constructor</code> which not throwing any ambiguous error</p>
  
  <pre><code>Test&lt;string&gt; t = new Test&lt;string&gt;();
  t.MyMethod1(MyMethod1);
  t.MyMethod2(MyMethod2);
  </code></pre>
  
  <p>Could anyone please help me to identify and fix the issue.</p>