クラスAとクラスBがあり、パラメータとして使うクラスPがあります。
AからBにCを渡したいのですが、B内でPのフィールドやプロパティで書き換えられたくありません。
つまりCを変更できるのはAクラスのみ内で行いたい、ということは可能なのでしょうか?
以下のソースの「// ここを禁止したい」ところでビルドエラーになるようにしたいです。
c#
1 public class ClassA 2 { 3 public ClassP P { get; set; } 4 public void Init() 5 { 6 P = new ClassP() 7 { 8 Name = "ClassAで生成" 9 }; 10 ClassB classB = new ClassB(); 11 classB.P = P; 12 } 13 public void Func() 14 { 15 P.Name = "ClassAで書き換え"; // ここは許可 16 } 17 } 18 19 public class ClassB 20 { 21 public ClassP P { get; set; } 22 public void Func() 23 { 24 P.Name = "ClassBで書き換え"; // ここを禁止したい 25 } 26 } 27 public class ClassP 28 { 29 public string Name { get; set; } 30 }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/18 06:37