可选参数与空参数方法和带重载的构造函数

时间:2017-07-12 14:06:35

标签: c# methods overloading

简单地说,你说有两种方法:

public static void WriteMessage() 
{
    Console.Write("Empty Parameter Function");
}



public static void WriteMessage(string data = "Some Data")
{
    Console.Write("Optional Parameter Function");
}

为什么如果你在没有任何参数的情况下调用WriteMessage函数,它会运行"空参数函数"?我理解方法重载,但是为什么可选参数函数不会像空参数函数那样运行,它会运行吗?

1 个答案:

答案 0 :(得分:7)

关于来自MSDN重载决议的以下几点解释了该决定:

  

如果两个候选人被判断为同样好,则优先选择没有可选参数的候选人,其中参数在呼叫中被省略。这是对具有较少参数的候选者的重载分辨率的一般偏好的结果。