简单地说,你说有两种方法:
public static void WriteMessage()
{
Console.Write("Empty Parameter Function");
}
public static void WriteMessage(string data = "Some Data")
{
Console.Write("Optional Parameter Function");
}
为什么如果你在没有任何参数的情况下调用WriteMessage函数,它会运行"空参数函数"?我理解方法重载,但是为什么可选参数函数不会像空参数函数那样运行,它会运行吗?
答案 0 :(得分:7)
关于来自MSDN的重载决议的以下几点解释了该决定:
如果两个候选人被判断为同样好,则优先选择没有可选参数的候选人,其中参数在呼叫中被省略。这是对具有较少参数的候选者的重载分辨率的一般偏好的结果。