2 つのインターフェイスがあります。ISet
とISet<T>
どちらも Add、Remove、Clear を実装していますが、引数の型が異なります。オブジェクトと T.
今、私には2つの選択肢があります。ISet<T>
から継承させるかISet
、互いに分離させます。
もちろん、ISet<T>
から継承することの大きな利点の 1 つは、必要なときにいつでも を使用できることです。ただし、そうすると、T パラメータを持つメンバーに "new" 修飾子も追加する必要があります。「新しい」修飾子はあまり好きではありませんが、この場合はこれがより良いオプションでしょうか?ISet
ISet<T>
ISet
ISet<T>
ではない があるのは奇妙に感じISet
ます。それが論理的な仮定です。「新しい」修飾子が気に入らない理由を正確に言うことはできません。「goto」キーワードのようなものです。私はそれを使わないようにしています。
私はここに何を持っていくべきだと思いますか?継承するかしないか?
.NET では、継承しないICollection<T>
とがあります。ICollection
どちらもしませIList<T>
んIList
。しかしIEnumerable<T>
、から継承しIEnumerable
ます。
すでに存在する ISet インターフェイスについて知っています (これは単なる例です)。