出于好奇,为什么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");
}
}
由于Log(object)
和Log(string)
都接受null
作为参数,我希望编译器给出一个模糊的调用错误,而是选择调用Log(string)
。为什么不Log(object)
?