在父/子接口之间移动方法

时间:2011-12-09 08:07:46

标签: c# inheritance interface

我有以下继承结构:

interface A
{ 
   void Foo();
}
interface B : A
{
}

我意识到Foo()实际实现的唯一地方(即非空)是在实现B的类中。

如果我将Foo从A移动到B,我是否必须重新编译所有那些实现类,更重要的是,使用这些实现的所有程序集呢? / p>

(我知道我可以自己尝试一下,看看,但我也想对正在发生的事情有所了解)

3 个答案:

答案 0 :(得分:1)

对于解决方案中的任何文件/类:是的。如果类A实际上在.dll库中,那么也是,并且您将不得不重新编译库并更新您的引用。不过,我不明白为什么这是一个大问题。 C#编译速度非常快,并且对编译非常聪明。 (顺便说一句,每次运行你的程序时,它是不是都会构建?)

答案 1 :(得分:1)

接口定义将以非向后兼容的方式更改,因此您还必须重新编译其他程序集,如果某些代码在Foo对象上调用A,则必须重写那部分代码。

答案 2 :(得分:0)

这只是一个版本控制问题。当前界面“已过时”,然后新的“改进”界面应该替换它。

这个过程取决于它的使用方式。