gpt4 book ai didi

c# - 提供通用和派生组合功能的抽象/虚拟成员 - C#

转载 作者:行者123 更新时间:2023-11-30 13:20:48 25 4
gpt4 key购买 nike

我以前做过 - 只是不记得技巧了。

如果我有一个抽象类:

公共(public)抽象类 Post

还有一组派生类:

公开课照片:发布

我想强制派生类实现一个名为Validate()的方法,但同时提供核心验证职位级别。

我可以在 Post 中创建一个方法:public abstract void Validate(),这将强制派生类实现该方法,但是我该如何执行(基础)验证?

最终结果是我希望能够做到这一点:

public class BLL
{
public void AddPost(Post post)
{
post.Validate(); // includes "Post" validation, any deriving validation.
repository.Add(post);
}
}

我该怎么做?

最佳答案

这是你想要的:

public abstract class Post {

// Default validation technique
public void Validate()
{
// your base validation
// Then call the specific validation technique
ExtraValidate();
}

// Forces subclasses to provide validation technique
protected abstract void ExtraValidate();
}

这将强制基类实现验证技术,并且基类验证将被外部用户调用。

不可能将方法抽象化,并提供默认实现。

关于c# - 提供通用和派生组合功能的抽象/虚拟成员 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4220371/

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