接口扩展 - 基类或扩展方法

时间:2016-10-20 08:58:53

标签: c#

我读到了使用扩展方法向接口添加方法,但是我也在思考为什么不从包含虚拟方法的接口派生基类(当然,如果你从一开始就可以灵活设计) 。如果需要,使用基类也可以增加覆盖的灵活性。

1 个答案:

答案 0 :(得分:3)

两者都有不同的优势。

基类:

  • 您可以将存储在私人字段中。
  • 如有必要,可以在子类中覆盖这些方法。
  • 实现在一个地方而不是分散(可能)许多扩展方法类。

扩展方法:

  • 不要求您的接口实现者从给定的基类继承。由于C#不支持多重继承,因此这可能是一个重要问题。
  • 不需要访问该类的源代码。