我们有几个引用库程序集的项目让我们调用“myUtil”,现在在几个项目中引用的方法之一是,
GetData(int p1, string p2, object p3, bool p4 = false);
现在如果我把上面的方法改成这个,
GetData(int p1, string p2, object p3, bool p4 = false, bool p5 = false);
我是否必须将“myUtil.dll”程序集更新到引用它的项目?
在没有引用它的情况下,我得到了这个错误,当我更新引用时它确实有意义并且消失了,但是我无法在它说你必须更新引用的地方找到有效的引用
System.MissingMethodException: Method not found: 'Void GetData(....
最佳答案
必须更新所有引用资料。
可选参数只是语法糖。
当你有这个时:
GetData(int p1, string p2, object p3, bool p4 = false);
然后这样调用它:
GetData(1, "p2", obj);
编译器这样做:
GetData(1, "p2", obj, false);
您需要重新编译并重新部署所有引用它的程序集/项目。
关于c# - 添加可选参数是否会更改方法签名,是否会触发方法丢失异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30317625/