を実装する配列ラッパー クラスを作成していますIList<T>
。ただし、何を返すかはわかりませんIList<T>.IsReadOnly
(から継承ICollection<T>
)。
私のクラスでは、挿入と削除が禁止されています。プロパティを介してアイテムを変更できますthis[int].set
。
MSDNは次のように述べています。
読み取り専用のコレクションでは、コレクションの作成後に要素を追加、削除、または変更することはできません。
私のクラスでは、これは私が戻らなければならないことを意味しているように見えますtrue
が、私の目にはこれはプロパティをレンダリングします少し完全に役に立たない: 私が見る限り、このメソッドの使用法は次のとおりです。
クライアントは任意の を処理し、可能であればIList
それに要素を挿入する必要があります。これは、結果を呼び出してキャッチするだけで実行できますが、さまざまな理由から、これは望ましくない場合があります。そのため、例外を引き起こす代わりに、クライアントは事前にプロパティをテストすることができます。Insert
NotSupportedException
IsReadOnly
しかし、コレクションの変更可能性とそのコンテンツの変更可能性が混在しているため、このプロパティの結果は間違っています。これはまったく関係のない問題です。
確かに、IList.IsFixedSize
プロパティはありますが、これは別の型です ( IList<T>
does not extends IList
)。私は何をすべきか?また、実装しますかIList
(私は本当にこの代替手段が好きではありません)? 何か他のことをしますか?