タイトルにあるように、ICollection
インターフェイスに Add メソッドが含まれていない理由を知っている人はいますか? ジェネリック バージョン にICollection<T>
があるのにAdd
ないICollection
のは非常に奇妙に思えます。これについてより深い知識を持っている人は誰でも本当に役に立ちます。
残念ながら、SharePoint を構築する開発者はジェネリックについて学んだことがないため、API のすべてのコレクションは .NET に基づいた非ジェネリック コレクションですICollection
。ICollection
とりわけ、コレクションへの追加を含むいくつかの拡張メソッドをアタッチしたいのですが、これは不可能のようです (少なくともリフレクションなしでは不可能です)。
編集:
かなりの数の人々がその理由を推測ICollection.Add
していますObject
。そうではありません。IList
を取るAdd
メソッドがありObject
ます。を受け取るメソッドで型チェックとキャストを行うだけですObject
。
配列が実装するICollection
ため、それを持つことができない引数は、Add
水を保持しません。メソッドがある場合ICollection
は、Add
配列に明示的に実装し、例外をスローする必要があります (配列実装の多くのメソッドが現在行っているように)。
誰かがデザイナーの一人による説明への参照を持っていることを本当に望んでいました.