假设有一个类Myclass有 3 个构造函数——第一个是默认的,没有参数,其中两个:
public Myclass(string param1, string param2 = null)
{
Text = param1;
Data = param2;
}
public Myclass(string param1, string param3, string param2 = null)
{
Text = param1;
Url = param3;
Data = param2;
}
签名不同(或不同?),但在这种情况下将调用哪个构造函数
new Myclass("param1", "param3");
为什么?
我看过这个问题的答案,但还没有找到我自己的答案。
MSDN
命名参数和可选参数的使用通过以下方式影响重载决策:
我认为在您的情况下适用第二条规则并且将调用第一个构造函数。