代码之家  ›  专栏  ›  技术社区  ›  Axarydax

在虚拟方法中抛出NotImplemented异常可以吗?

  •  8
  • Axarydax  · 技术社区  · 14 年前

    我有一些插件风格的东西的基类,还有一些绝对需要实现的方法。

    例如,我当前将基类中的那些声明为virtual

    public virtual void Save
    {
        throw new NotImplementedException();
    }
    

    在未来,我有一个

    public override void Save()
    {
        //do stuff
    }
    

    掷骰子是个好习惯吗 NotImplementedException 在那里?例如,子类和类可以是处理不同文件格式的模块。谢谢

    4 回复  |  直到 14 年前
        1
  •  17
  •   tvanfosson    14 年前

    public abstract class MyBase
    {
        public abstract void Save();
        ...
    }
    
    public class MyChild : MyBase
    {
         public override void Save()
         {
             ... save ...
         }
    
         ...
    }
    
        2
  •  11
  •   ToxicAvenger ToxicAvenger    14 年前

    不是个好主意。

    base.Save()
    

    每次都会呕吐。

        3
  •  9
  •   ScottS    14 年前

    抽象似乎是你真正想要的。

        4
  •  9
  •   Oded    14 年前

    将它声明为抽象方法不是更好吗?