C#で読み取り専用2次元配列を返す方法はありますか?C#で読み込み専用2次元配列
私はReadOnlyCollection
が1次元配列に使用するのに適していることを知り、this[] {get}
を実装する独自のラッパークラスを作成しています。しかし、この車輪が既に存在するならば、私は車輪を再構築したくない。
C#で読み取り専用2次元配列を返す方法はありますか?C#で読み込み専用2次元配列
私はReadOnlyCollection
が1次元配列に使用するのに適していることを知り、this[] {get}
を実装する独自のラッパークラスを作成しています。しかし、この車輪が既に存在するならば、私は車輪を再構築したくない。
これをシミュレートする方法は1つだけです。
プライベートアレイを使用して独自のクラスを作成する必要があります。
配列の最も類似したインプリメンテーションは、インデクサである:
'10 0.8' リンクが二次元アレイのシミュレーションを示します。
ゲッターでのみインデクサーを実装する場合、ユーザーは要素を読み取ることができますが、書き込むことはできません。ただし、各要素がオブジェクト(参照型)である場合は、アクセスされたオブジェクトのプロパティの変更を防ぐことはできません。
しかし、「読み取り専用」のオブジェクトをシミュレートするいくつかの方法があります
int
等)C++のような他の言語では、定数値への参照とポインタがありますが、これはC#では存在しません。
申し訳ありませんが、あなたが求めるケースを処理する組み込みの実装はありません。 しかし、あなた自身で簡単に実装することは難しいことではありません。
だけと思うが、私はあなたがやるだろうということ、それをあなたが意識を願って読み取り専用コレクションが、そのコレクション内のない要素です。
これが役に立ちます。
多次元配列afaik – BrokenGlass
には何も組み込まれていません。次は、StackOverflowに関する同様の質問からの回答です - http://stackoverflow.com/questions/678379/is-there-a-read-only-generic-dictionary-available -in-net –
それほどよく似ていない@ Scorpion-Prince。 –