title: Why doesn't this trigger an "Ambiguous Reference Error"?
body: <pre><code>public class A
  {
      public virtual string Go(string str) { return str; }
      }
  
  public class B : A
  {
      public override string Go(string str) {return base.Go(str);}
      public string Go(IList&lt;string&gt; list) {return "list";}
  }
  
  public static void Main(string[] args)
  {
      var ob = new B();
      Console.WriteLine(ob.Go(null));
  }
  </code></pre>
  
  <p><a href="http://dotnetpad.net/ViewPaste/s6VZDImprk2_CqulFcDJ1A" rel="nofollow">http://dotnetpad.net/ViewPaste/s6VZDImprk2_CqulFcDJ1A</a></p>
  
  <p>If I run this program I get "list" sent out to the output. Why doesn't this trigger an ambiguous reference error in the compiler?</p>