C# 配列にはパブリックな `Count` プロパティがないにもかかわらず、本当に `IList` インターフェイスが実装されていますか?
C# の配列: IList の破壊インターフェイスの実装?
質問:
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
追加の洞察
- CLR には、映射 IList
などの他の型置換があります。 IVector へ - あたかも IList
を完全に実装しているかのように配列を扱う抽象化。は便利ですが、場合によっては誤解を招く可能性があります。 - GetInterfaceMap() メソッドは、ジェネリック インターフェイスの具象配列型では機能せず、隠された実装が明らかになります。
以上がC# 配列にはパブリックな `Count` プロパティがないにもかかわらず、本当に `IList` インターフェイスが実装されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?
