Why doesn't this trigger an "Ambiguous Reference Error"?
<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>
