【C#チュートリアル】C#インデクサー(インデクサー)
C# Indexer
Indexer を使用すると、オブジェクトに配列のようにインデックスを付けることができます。クラスのインデクサーを定義すると、クラスは仮想配列のように動作します。このクラスのインスタンスには、配列アクセス演算子 ([ ]) を使用してアクセスできます。
構文
1 次元インデクサーの構文は次のとおりです:
element-type this[int index] { // get 访问器 get { // 返回 index 指定的值 } // set 访问器 set { // 设置 index 指定的值 } }
インデクサーの目的
インデクサーの動作の宣言は、ある程度プロパティに似ています。プロパティと同様に、get および set アクセサーを使用してインデクサーを定義できます。ただし、プロパティは特定のデータ メンバーを返すか設定するのに対し、インデクサーはオブジェクト インスタンスの特定の値を返すか設定します。つまり、インスタンス データを小さな部分に分割し、各部分にインデックスを付けて、各部分を取得または設定します。
プロパティの定義には、プロパティ名の指定が含まれます。インデクサーは名前なしで定義されますが、オブジェクト インスタンスを指す this キーワードが使用されます。次の例は、この概念を示しています。
using System; namespace IndexerApplication { class IndexedNames { private string[] namelist = new string[size]; static public int size = 10; public IndexedNames() { for (int i = 0; i < size; i++) namelist[i] = "N. A."; } public string this[int index] { get { string tmp; if( index >= 0 && index <= size-1 ) { tmp = namelist[index]; } else { tmp = ""; } return ( tmp ); } set { if( index >= 0 && index <= size-1 ) { namelist[index] = value; } } } static void Main(string[] args) { IndexedNames names = new IndexedNames(); names[0] = "Zara"; names[1] = "Riz"; names[2] = "Nuha"; names[3] = "Asif"; names[4] = "Davinder"; names[5] = "Sunil"; names[6] = "Rubic"; for ( int i = 0; i < IndexedNames.size; i++ ) { Console.WriteLine(names[i]); } Console.ReadKey(); } } }
上記のコードをコンパイルして実行すると、次の結果が生成されます:
Zara Riz Nuha Asif Davinder Sunil Rubic N. A. N. A. N. A.
インデクサー (Indexer) のオーバーロード
インデクサー (Indexer) はオーバーロードできます。インデクサーは複数のパラメーターを使用して宣言することもでき、各パラメーターは異なる型にすることもできます。インデクサーが整数である必要はありません。 C# では、インデクサーを他の型 (たとえば、文字列型) にすることができます。
次の例は、オーバーロードされたインデクサーを示しています:
using System; namespace IndexerApplication { class IndexedNames { private string[] namelist = new string[size]; static public int size = 10; public IndexedNames() { for (int i = 0; i < size; i++) { namelist[i] = "N. A."; } } public string this[int index] { get { string tmp; if( index >= 0 && index <= size-1 ) { tmp = namelist[index]; } else { tmp = ""; } return ( tmp ); } set { if( index >= 0 && index <= size-1 ) { namelist[index] = value; } } } public int this[string name] { get { int index = 0; while(index < size) { if (namelist[index] == name) { return index; } index++; } return index; } } static void Main(string[] args) { IndexedNames names = new IndexedNames(); names[0] = "Zara"; names[1] = "Riz"; names[2] = "Nuha"; names[3] = "Asif"; names[4] = "Davinder"; names[5] = "Sunil"; names[6] = "Rubic"; // 使用带有 int 参数的第一个索引器 for (int i = 0; i < IndexedNames.size; i++) { Console.WriteLine(names[i]); } // 使用带有 string 参数的第二个索引器 Console.WriteLine(names["Nuha"]); Console.ReadKey(); } } }
上記のコードがコンパイルされて実行されると、次の結果が生成されます:
Zara Riz Nuha Asif Davinder Sunil Rubic N. A. N. A. N. A. 2
上記は [c# チュートリアル] C# インデクサーの内容です。詳細については、関連コンテンツを参照してください。 、PHP 中国語 Web サイト (www.php.cn) に注意してください。

ホット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# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。
