質問:
C# の配列は IList
回答:
配列と汎用インターフェイス
C# の配列System.Collections.IList、汎用ではありません。これらは System.Collections.Generic.IList
CLR の隠れた実装
ただし、共通言語ランタイム (CLR) は具体的な配列型を動的に作成します。これらの型は、内部で System.SZArrayHelper クラスを使用して IList
コンパイラと CLR の知識
コンパイラと CLR は配列型を認識しており、それらを IList
Missing Count Property
Count プロパティは明示的に実装されていません。代わりに、CLR は配列の Length プロパティにマップするメソッドを内部で使用します:
internal int get_Count<T>() { T[] _this = JitHelpers.UnsafeCast<T[]>(this); return _this.Length; }
Breaking the Rules?
この内部実装はおそらく厳密な規則に違反しています。インターフェースの実装ルール。ただし、配列が IList
追加の洞察
以上がC# 配列にはパブリックな `Count` プロパティがないにもかかわらず、本当に `IList` インターフェイスが実装されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。