C# で読み取り専用の 2 次元配列を返す確立された方法はありますか?
ReadOnlyCollection
を1 次元配列に使用するのが正しいことはわかっているので、喜んで独自のラッパー クラスを作成してthis[] {get}
. しかし、この車輪がすでに存在する場合、車輪を再発明したくありません。
C# で読み取り専用の 2 次元配列を返す確立された方法はありますか?
ReadOnlyCollection
を1 次元配列に使用するのが正しいことはわかっているので、喜んで独自のラッパー クラスを作成してthis[] {get}
. しかし、この車輪がすでに存在する場合、車輪を再発明したくありません。
残念ながら、あなたが求めるケースを処理する組み込みの実装はありません。しかし、自分で簡単に実装するのは難しいことではありません。
唯一の考えは、あなたがすることは readonly collectionであり、そのコレクション内の要素ではないことを知っていることを願っています。
お役に立てれば。
これをシミュレートする方法は 1 つしかありません。
プライベート配列を使用して、独自のクラスを作成する必要があります。
配列の最も類似した実装は、インデクサーです。
「10.8」リンクは、2 次元配列のシミュレーションを示しています。
getter のみを使用してインデクサーを実装すると、ユーザーは要素を読み取ることはできますが、書き込むことはできません。ただし、各要素がオブジェクト (参照型) の場合、アクセスされたオブジェクトのプロパティの変更を防ぐことはできません。
ただし、「読み取り専用」オブジェクトをシミュレートする方法はいくつかあります。
int
)C++ などの他の言語では、定数値への参照とポインターがありますが、これは C# には存在しません。