【发布时间】:2012-02-07 15:02:58
【问题描述】:
我有一个 .NET 应用程序,它使用一个程序集 (.dll),该程序集定义了一些方法:
public void DoSomething()
{
// Do work
}
假设此方法签名更改为包含 string 返回类型:
public string DoSomething()
{
// Do work
return "something";
}
为什么使用此方法的代码会在 System.MissingMethodException 上失败?
在我看来,在所有调用此方法的站点上,都没有使用返回值(因为它以前不存在)。
那么为什么这个改变会破坏代码呢?
【问题讨论】:
-
编辑了我的例子。我的观点是该方法现在返回了一些东西;但是以前使用它的所有代码都不会对它做任何事情。编写这样的代码是完全合法的。