鉴于方案继承类的方法...呼叫通过接口
interface IBase{
void Process(int value);
}
abstract class Base : IBase
{
public virtual void Process(int value){ throw new NotImplementedException(); }
}
class Implemented: Base, IBase
{
public void Process(int value)
{
// .. some code here..
}
}
我想写类似如下的循环。
foreach(Base b in CollectionOfImplemented)
{
b.Process(// something will go here //);
}
尝试此操作,它会一直调用Base.Process,而不是Implemented.Process;但集合中的类型是已实现的,而不是基本的。拳击它似乎工作,但我希望看看我是否能找到一个更聪明的方法,因为该集合将包含其他类型的对象,也继承了基地。
Visual Studio的一个优秀功能是在子类中,您可以开始输入单词“覆盖”,而智能感知系统会告诉您哪些虚拟方法可以被覆盖。 – Stephen 2010-05-25 17:31:29