使用可选参数重载方法
我有一个类如下,有两个重载方法。
Class A { public string x(string a, string b) { return "hello" + a + b; } public string x(string a, string b, string c = "bye") { return c + a + b; } }
如果我从具有两个参数的另一个类调用方法x
,那么将执行哪个方法以及为什么? 即
string result = new A().x("Fname", "Lname");
我在我的控制台应用程序中测试了这个,并且执行了2个参数的方法。 有人可以解释一下吗?
使用命名和可选参数会影响重载解析:
如果判断两个候选者同样好,则优先选择没有可选参数的候选者,该参数在调用中被省略。 这是对具有较少参数的候选者的重载分辨率的一般偏好的结果。
参考: MSDN
使用2个参数string x(string a,string b)
隐含上述规则方法将被调用。
注意:如果两个重载方法都有可选参数,那么编译器将给出编译时模糊错误。
如果使用两个参数调用Method,则它将Method与两个Parameters一起使用。 如果你打电话给三人,它会使用另一个。
它将始终执行首先匹配完全没有参数的方法 ,在您的情况下它将执行:
可选参数方法优先级小于具有精确无参数的函数
上述就是C#学习教程:使用可选参数重载方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public string x(string a, string b);
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/957078.html