抽象还是虚拟方法?

5 .net c#

在抽象课中推荐什么?

让虚方法返回null,或者有一个抽象方法?

让它们返回null是方便和容易的,因为我不必做任何继承自抽象类的事情.但是,如果出于目的,错误或设计的原因,返回null有点难以理解.

对此有明确的建议吗?

Mar*_*ell 16

如果返回null是一个明智且理智的事情,作为默认行为(使用支持文档),那么也许没问题virtual.同样,如果您可以创建合理的默认值,但只想提供可扩展性:virtual.

如果(具体)类在没有非默认实现的情况下无法运行,那么请创建它abstract.这里的案例手册是Stream:没有一个理智的实现,字节来自哪里?(/去).