为了账号安全,请及时绑定邮箱和手机立即绑定

使用可选参数冲突重载方法

使用可选参数冲突重载方法

至尊宝的传说 2019-08-28 14:16:25
使用可选参数冲突重载方法我有两个重载方法,一个带有可选参数。void foo(string a)  { }  void foo(string a, int b = 0) { }现在我打电话给: foo("abc");有趣的是第一次重载被调用。为什么第二次重载的可选值设置为零?说实话,我希望编译器带来一个错误,至少是一个警告,以避免无意中执行错误的方法。这种行为的原因是什么?为什么C#团队以这种方式定义它?
查看完整描述

4 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

为什么他们这样定义?是否存在使用可选参数的重载有意义的场景?永远不会使用默认值调用它,对吗?但它可能导致不必要的错误。我仍然认为compliler应该至少给出一个警告。还有其他一些例子,开发人员必须明确告诉编译器他知道他在做什么。例如,如果方法中的参数声明为ref,我也需要在方法调用中显式使用ref关键字; 否则它将无法编译。

查看完整回答
反对 回复 2019-08-28
  • 4 回答
  • 0 关注
  • 507 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信