函数之间的模糊调用错误

Buz*_*uzz 1 c# nullable

我在接受采访时得到了这个问题,现在我知道我给出了错误的答案.为什么这个程序在函数之间显示模糊的调用,因此没有编译?

public static void Display(int? num) {
    Console.WriteLine(num);
}

public static void Display(string num) {
    Console.WriteLine(num);
}

static void Main() {
    Display(1);
    Display("1");
    Display(null);

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

rya*_*lli 7

该陈述 Display(null);可以解释为Display(nullable int with null value)Display(string with null value).因此模糊的呼叫错误.

  • 为了给出这个错误,不仅必须有多种适用的方法,还必须有*没有最好的方法*.既不是int?字符串显然比其他字符"更好",方法含糊不清.如果它是对象和字符串,那么字符串会更好,因为它比对象更具体. (6认同)