Can anyone explain this interesting C# problem?
<p>I hit a bizarre problem earlier which I have replicated in a new console application. I wonder, can anyone explain why this occurs?</p>

<pre><code>    static void Main(string[] args)
    {
        DoSomething(0);

        Console.Read();
    }

    public static void DoSomething(int? value)
    {
        Console.WriteLine("Do Something int? called");
    }

    public static void DoSomething(MyEnum value)
    {
        Console.WriteLine("Do Something MyEnum called");
    }

    public static enum MyEnum : int
    {
        test

    }
}
</code></pre>

<p>You get an error on the DoSomething line:</p>

<blockquote>
  <p>Error 1   The call is ambiguous between the following methods or properties: 'DoSomething(int?)' and 'DoSomething(MyEnum)'    </p>
</blockquote>

<p>However if you change the zero to any other number, there is no such problem.</p>
