gpt4 book ai didi

C# - 使字段/属性有条件地只读

转载 作者:太空狗 更新时间:2023-10-29 20:45:10 27 4
gpt4 key购买 nike

我有三个类(class);类 AB 都引用类 C

我怎样才能使类 C 的成员在从类 A 引用时可以修改,但在从类 B 引用时不修改?

IE,下面应该可以;

classA myClassA = new classA();
myClassA.myClassC.IssueNumber = 3;

但这应该是不可能的;

classB myClassB = new classB();
myClassB.myClassC.IssueNumber = 3;

classB.classC 设置为只读仍然允许更改 classC 的属性。

我确定这是基本的东西,但找不到简单的答案。

谢谢,一个

最佳答案

模式一:做一个简单的只读接口(interface)IRead。做一个简单的写接口(interface)IWrite。制作一个读写接口(interface)IReadWrite : IRead, IWrite。实现 classC : IReadWrite。将 myClassA.myClassC 声明为 IReadWrite。将 myClassB.myClassC 声明为 IRead。 (如果不需要,您不必在任何地方使用 IWrite :-))

模式 2:为 classC 创建一个名为 ReadOnlyClassC 的只读包装器,并在 classB 中使用它。

IO 流使用模式 1 来拆分读取器和写入器实现,然后将它们组合成读写流。

模式 2 由通用集合使用以提供只读方面。

关于C# - 使字段/属性有条件地只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2598743/

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