"I"規約がCOM以来存在していたことは知っていますが、.NETが登場する前に他のすべての命名規約のように再検討されなかった理由を理解したことはありません。
消費に関しては、たとえば抽象クラスからインターフェースを分離する唯一のことは、それらが多重継承できることです。しかし、Visual Studio 2003以降のすべてのツールチップには型シグネチャが表示されているため、破棄された他のすべてのハンガリー語の表記と同じくらい役に立ちません。
また、私はそれはあなたが同じ名前を持つインタフェースの基本的な実装を持つことができるようになるかもしれないと思った、例えばMessage
継承IMessage
が、.NETライブラリのほとんどは(例えば末尾に単語「ベース」を追加するために行っているSystem.Collections.ReadOnlyCollectionBase
代わりに) -これはより意味のある意味になります。
COM相互運用機能は別の考えられる理由のようですが、それが生成するラッパークラスが完全に慣用的な.NETであるかのようではないので、それが審美的な考慮事項だったとは思えません。
私の新しいプロジェクトの1つで、私は大会を完全に断念しました。行方不明のものはありますか?
IList
は、シーケンス化された連続したコレクションのランダムアクセスの総称List
ですが、シーケンス化された連続的なランダムアクセスの成長するコレクションです。F#はList
へのエイリアシングでそれが正しかったと思いますResizeArray
。それは間違いなくもっとわかりやすい名前です。IList
だったかもしれList
ないので、それも理由ではないようです。