Array クラスが IList インターフェイスを実装する理由
System.Array クラスの .NET Framework 定義は、以下から継承することを示しています。他のインターフェイス、IList インターフェイス。ここで疑問が生じます: なぜ配列はリスト用に設計されたインターフェイスを実装するのでしょうか?
答えは配列の性質にあります。配列は、その要素への高速なインデックス付きアクセスを提供します。この機能は、IList と IList
ただし、配列は IList インターフェイスを実装していますが、その仕様に完全に準拠しているわけではありません。 IList オブジェクトを通じて配列を変更しようとすると、例外が発生します。これは、配列が固定サイズのコレクションとして設計されているのに対し、リストは動的にサイズ変更できるためです。
この矛盾の理由は、インデクサーを使用した定サイズのコレクション専用のインターフェイスがないためです。 IList インターフェイスはリストに共通のインターフェイスを提供しますが、サイズ変更可能なコレクションと固定サイズのコレクションを区別しません。
そのため、配列に対する IList インターフェイスの使用は、配列へのインデックス付きアクセスを可能にする妥協策です。配列の基礎となる固定サイズの性質を維持しながら、要素を追加します。ただし、この妥協により、IList インターフェイスのすべてのメソッドとの完全な互換性が得られるわけではないことに注意することが重要です。
以上が.NET 配列クラスが IList インターフェイスを実装するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。