为什么这不是一个模棱两可的电话?

Ulf*_*sen 6 c#

出于好奇,为什么Log(null)在这种情况下不是一个模棱两可的电话?

class Program
{
    static void Main(string[] args)
    {
        Log(null); // Output is "String"
    }

    static void Log(object value)
    {
        Console.WriteLine("Object");
    }

    static void Log(string value)
    {
        Console.WriteLine("String");
    }
}
Run Code Online (Sandbox Code Playgroud)

由于这两个Log(object)Log(string)接受null作为参数我期待编译器给我一个模棱两可的调用错误,而是它选择调用Log(string).为什么不Log(object)呢?