我在 C# 程序中遇到了一个非常奇怪的问题:
我有一个接口(interface)声明了一个方法和一个实现这个接口(interface)的类。当我更改方法名称(在接口(interface)和实现中)时,visual studio 会编译代码,但如果我运行代码,我会得到一个method not found
异常。如果我手动删除目标 dll 并重新编译项目/解决方案,一切正常。
但是,还有许多其他方法和属性,也在同一个接口(interface)中声明并在同一个类中实现。如果我更改其中之一的名称,一切正常!
有没有人知道这是什么?
public interface INode{
//...
IEnumerable<INode> Ancestors();
//...
}
public abstract class NodeBase : INode{
// ...
public IEnumerable<INode> Ancestors(){
}
// ...
}
最佳答案
在尝试解决问题时,我已从 UI 项目中删除对问题程序集的引用,然后重新添加。从这个时候开始,这个问题就没有了。
可悲的是,我不能说这个非常奇怪的问题的原因是什么,现在我没有机会再看这个问题了。 它一定是项目中损坏的东西,但是我无法想象这可能是什么,因为实际上只涉及一个方法签名(与代码中的位置和方法名称无关)。
感谢到目前为止发布答案 (+1) 的任何人,引导我找到解决方案。我希望我再也不会看到这种奇怪的行为了! 对于那些有同样问题的人:尝试重新创建对发布项目的引用。
关于c# - Visual Studio c# 编译器未注意到已更改的方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11003774/