我有一些插件样式的基类,并且有一些方法绝对需要实现。
我目前将基类中的那些声明为虚拟,例如
public virtual void Save
{
throw new NotImplementedException();
}
在下降中我有一个
public override void Save()
{
//do stuff
}
在那里抛出NotImplementedException
是一个好习惯吗?例如,下降类可以是用于处理不同文件格式的模块。感谢
答案 0 :(得分:14)
一般来说,我希望您的基类是抽象的,只需将实现推迟到继承类。
public abstract class MyBase
{
public abstract void Save();
...
}
public class MyChild : MyBase
{
public override void Save()
{
... save ...
}
...
}
答案 1 :(得分:10)
不是个好主意。
通常,重写方法会通过
调用基类方法base.Save()
每次都会呕吐。
总的来说,糟糕的主意。在你的情况下,它看起来像抽象将是更好的选择。
答案 2 :(得分:8)
答案 3 :(得分:8)
将它声明为抽象方法不是更好吗?
这样,所有实现类型都必须实现此方法。