gpt4 book ai didi

c# - 如何隐藏基类的方法?

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:07 29 4
gpt4 key购买 nike

我使用 CaSTLe Active Record 的 ActiveRecordBase 类作为我的数据库对象的基类。这让我可以利用 AR 模式的优势,例如:

MyClass clas = new MyClass();
clas.Number = 5;
clas.Save();

问题是,对于某些对象,我想隐藏这些方法。我怎样才能做到这一点?我不为这些对象使用接口(interface)。

编辑1:更清楚地说:我希望有 10 个类继承自基类,但其中 3 个不应公开基类的某些方法。因此,例如对于 MyClassB,这是:

MyClassB clasB = new MyClassB();
clasB.Number = 5;
clasB.Save();

不应该是可能的——这个对象不应该能够 Save()。

编辑2:我读过 c# hide from dervied classes some properties of base class .我同意这是不好的方法,但请记住我必须使用 ActiveRecordBase,我不能简单地修改它(至少如果我想坚持使用原始的 CaSTLe Active Record 源)。

最佳答案

你不这样做。

您重构您的设计,以便 7 个对象继承自一个提供所需功能的对象,另外 3 个继承自不提供此功能的对象,并且它们都继承自主要“核心”对象。把它想象成一棵树。您无需尝试从 View 中隐藏树叶,只需更改 Twig 的位置即可。我不确定这个类比是否有效,但让我们假装它有效。

关于c# - 如何隐藏基类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4803514/

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