私がこのようなプロパティを持っているとしましょう:
public int[] MyProperty
{
get;
set;
}
呼び出し元のコードは、配列の値を自由に変更できますが、配列自体を置き換えることもできます。これは、次のようにセッターを非表示にすることで簡単に防ぐことができます。
public int[] MyProperty
{
get;
private set;
}
これにより、呼び出し元のコードで値を変更できますが、配列を別の配列に変更したり、サイズを変更したりすることはできません。
このパターンは多次元配列で機能しますが、ジャグ配列では機能しません。私がこれを持っている場合:
public int[][] MyProperty
{
get;
private set;
}
メインアレイは変更できませんが、子アレイは変更できます。子配列を読み取り専用にして、呼び出し元のコードが要素を変更できるが、配列は変更できない場合はどうなりますか?
ジャグ配列の要素のみを変更可能にするにはどうすればよいですか?これには3D以降が含まれます。