C# のインデクサーの簡単な理解と使用法
Indexer は、配列のような方法でオブジェクトにアクセスできるようにする特別なクラス メンバーであり、プログラムをより直感的で簡単に作成できるようにします。
1. インデクサーの定義
C# のクラス メンバーは、配列やコレクションを含む任意の型にすることができます。クラスに配列メンバーとコレクション メンバーが含まれている場合、インデクサーは配列メンバーまたはコレクション メンバーへのアクセスを大幅に簡素化します。
インデクサーを定義する方法は、属性の定義に似ています。その一般的な形式は次のとおりです。
[修饰符] 数据类型 this[索引类型 index] { get{//获得属性的代码} set{ //设置属性的代码} }
修飾子には、public、protected、private、internal、new、virtual、sealed、override、abstract、extern が含まれます。データ型は、アクセスされる配列またはコレクション要素の型を表します。
インデクサーのタイプは、インデクサーが配列またはコレクションの要素にアクセスするために使用するインデックスのタイプを示します。これは、整数または文字列であり、このオブジェクトを操作する配列またはコレクションのメンバーを表し、単純にインデックスとして理解できます。インデクサーの名前。インデクサーにユーザー定義の名前を付けることはできません。 例:
class Z { //可容纳100个整数的整数集 private long[] arr = new long[100]; //声明索引器 public long this[int index] { get { //检查索引范围 if (index < 0 || index >= 100) { return 0; } else { return arr[index]; } } set { if (!(index < 0 || index >= 100)) { arr[index] = value; } } }
2. インデクサーの使用
インデクサーを介してクラスのインスタンスの配列メンバーにアクセスできます。一般的な形式は次のとおりです: オブジェクト名 [インデックス]
。インデックスのデータ型は、インデクサーのインデックス型と同じである必要があります。例:
Z z=new z(); z[0]=100; z[1]=101; Console.WriteLine(z[0]);
//オブジェクト z が最初に作成され、次にオブジェクト内の配列要素がインデックスを通じて参照されることを示します。
C# では、インデクサーの型を整数に制限しません。たとえば、インデクサーで文字列を使用できます。このタイプのインデクサーは、コレクション内の文字列を検索し、対応する値を返すことによって実装されます。アクセサーはオーバーロードできるため、文字列バージョンと整数バージョンが共存できます。
class DayCollection { string[] days={"Sun","Mon","Tues","Wed","Thurs","Fri","Sat"}; private int GetDay(string testDay) { int i=0; foreach(string day in days) { if(day==testDay) return i; i++; } return -1; } public int this[string day] { get{return (GetDay(day))} } } static void Main(string[] args) { DayCollection week=new DayCollection(); Console.WriteLine("Fri:{0}",week["Fri"]); Console.WriteLine("ABC:{0}",week["ABC"]); }
第一に、インターフェイス インデクサーは修飾子を使用しません。
アクセサーの目的は、インデクサーが読み取り/書き込み、読み取り専用、書き込み専用のいずれであるかを示すことです。読み取り/書き込みの場合、アクセサーの get または set を同時に省略することはできません。読み取り専用の場合、set アクセサーは省略されます。書き込み専用の場合、get アクセサーは省略されます。
public interface IAddress { string this[int index]{get;set;} string Address{get;set;} string Answer(); }
C# のインデクサーの簡単な理解と使用法に関連するその他の記事については、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)

ホットトピック

Char Arrayは文字シーケンスをC言語で保存し、char array_name [size]として宣言されます。アクセス要素はサブスクリプト演算子に渡され、要素は文字列のエンドポイントを表すnullターミネーター「\ 0」で終了します。 C言語は、strlen()、strcpy()、strcat()、strcmp()など、さまざまな文字列操作関数を提供します。

C言語では、以下などのエスケープシーケンスを通じて特殊文字が処理されます。\ nはラインブレークを表します。 \ tはタブ文字を意味します。 ESACEシーケンスまたは文字定数を使用して、Char C = '\ n'などの特殊文字を表します。バックスラッシュは2回逃げる必要があることに注意してください。さまざまなプラットフォームとコンパイラが異なるエスケープシーケンスを持っている場合があります。ドキュメントを参照してください。

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

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

c言語のシンボルの使用方法は、算術、割り当て、条件、ロジック、ビット演算子などをカバーします。算術演算子は基本的な数学的操作に使用されます。割り当てと追加、下位、乗算、除算の割り当てには、条件操作に使用されます。ポインター、ファイル終了マーカー、および非数値値。

C言語では、charタイプの変換は、キャスト:キャスト文字を使用することにより、別のタイプに直接変換できます。自動タイプ変換:あるタイプのデータが別のタイプの値に対応できる場合、コンパイラは自動的に変換します。

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。
