gpt4 book ai didi

c# - 我应该使方法虚拟还是抽象?

转载 作者:行者123 更新时间:2023-12-04 04:08:29 24 4
gpt4 key购买 nike

我有一个抽象类,它进行自己的内部验证。它有另一种方法允许子类进行额外的验证检查。目前,我已将方法抽象

protected abstract bool ValidateFurther();

但是,我看到相当多的子类被迫重写它只是为了返回 true。我正在考虑使方法 virtual

protected virtual bool ValidateFurther() => true;

假设验证在抽象类中没问题是不是很糟糕?我担心子类可能不会注意到它,甚至在需要时也不会覆盖它。哪种方法更合适?

最佳答案

您可以在您的设计中添加另一层。

public abstract class Base
{
protected abstract bool ValidateFurther();
}

public abstract class BaseWithValidation : Base
{
protected override bool ValidateFurther() => true;
}

如果您的继承类的重要子集应该只返回 true,您可以使用 BaseWithValidation 来避免在任何地方重复代码;对于其他任何内容,请使用 Base

关于c# - 我应该使方法虚拟还是抽象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62143698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com