c# - 添加可选参数是否会更改方法签名,是否会触发方法丢失异常?

标签 c#

我们有几个引用库程序集的项目让我们调用“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/

相关文章:

c# - 将数组初始化为动态大小 - C#

c# - 如何在编码模式下将超链接放入标签中?

c# - 属性隐藏和反射 (C#)

c# - 从源代码访问 Unity3D 的自定义全局定义

C# Newtonsoft 使用声明反序列化自定义对象?

c# - 在一个事件中设置 'int' 并在另一事件中使用它

c# - 使用 FluentValidation 验证集合,返回一个属性失败的规则错误

c# - 在 WPF 应用程序中显示网页的某些部分的方法

c# - 通过在本地配置文件下运行服务从 Windows 服务获取用户 appdata 路径

c# - 将 Swagger 添加到 ASP.Net Core Web API