覆盖虚拟方法时,最好是调用基本方法吗?

Ian*_*Ian 5 c# polymorphism visual-studio-2010

我注意到,当使用Visual Studio在C#中覆盖虚拟方法时,IDE会自动添加base.Method()调用.另一方面,当重写抽象方法时,IDE会自动添加NotImplementedException().

为什么VS在覆盖虚拟方法时会自动添加base.Method()调用?调用基本方法是最佳做法吗?

spe*_*der 7

这取决于您是否仍需要发生基本行为.该决定将根据具体情况作出.没有严格的规则,虽然有些模式会期望调用基本方法(IDisposable模式的正确实现以这种方式工作)