1

クラスメンバーのアクセシビリティに問題があります。

連携して動作する 3 つのクラスがあり、それぞれのプロパティに完全にアクセスする必要があります。クラスA、クラスB、クラスC

ただし、classA は別の場所で使用されており、そのクラスのすべてのユーザーは、すべての構造への読み取りアクセスのみを持つ必要があります!!

クラスは次のようになります。

public class classA
{
    public ClassB B { get ; }
    ...
}

public class classB
{
    ClassC C { get ;  set ; }
    ...
}

public class classC
{
    ArrayList L { get ;  set ; }
    ...
}

classA と classB は classC にフル アクセスできますが、class A のすべてのユーザーは内部を変更できません。

たとえば、これはまだ可能です:(

classA A = new A();
A.B.C.L.Add( something);

セットが欠落しているために AB を変更できない場合でも。

私が見る 1 つの可能性は、プロパティ AB が構造のディープ コピーを返すため、AB を変更してもソース構造に影響を与えないということですが、私はそれに満足していません。

「読み取り専用」を使用したか、「set;」を省略したかのように、コンパイル時に書き込みアクセスをチェックする方法はありますか?

4

1 に答える 1