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

Ali*_*r77 6 c# readonly immutability

我有三节课; 类AB两个引用类C.

我如何才能这样做,以便C在从类引用时可以修改类的成员,A但在从类引用时不进行修改B

IE,以下应该是可能的;

classA myClassA = new classA();
myClassA.myClassC.IssueNumber = 3;
Run Code Online (Sandbox Code Playgroud)

但这不应该是可能的;

classB myClassB = new classB();
myClassB.myClassC.IssueNumber = 3;
Run Code Online (Sandbox Code Playgroud)

使classB.classC只读仍然允许classC改变属性.

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

谢谢

Fra*_*nov 17

模式1:创建一个简单的只读接口IRead.制作一个简单的写接口IWrite.创建一个读写接口IReadWrite : IRead, IWrite.实施classC : IReadWrite.声明myClassA.myClassCIReadWrite.声明myClassB.myClassCIRead.(IWrite如果您不需要,您无需在任何地方使用:-))

模式2:为classC被调用创建一个只读包装器ReadOnlyClassC并使用该包装器classB.

IO流使用模式1来分割读写器实现,然后将它们组合在读写流中.

泛型集合使用模式2来提供只读方面.