多种适用方法

时间:2017-11-06 20:16:01

标签: c#

考虑两个具有相同名称但参数不同的方法:

private void Method(int number) => Debug.WriteLine("I'm method 01");

private void Method(int number, string name = "") => Debug.WriteLine("I'm method 02");

理论上,如果我们调用Method(0);,两种方法都适用。没有错误/警告。

调试显示编译器采用方法01 - 是否有任何规则?

是否存在方法02 被调用的危险?

1 个答案:

答案 0 :(得分:2)

C#规范详细解释了重载决策的工作原理。

有关详细信息,请参阅here

C#不是随机语言;每一段可能的代码都具有规范定义的含义(永远不会改变)或者会产生编译错误。