Indexer は、C# によって導入された新しいクラス メンバーであり、クラス内の オブジェクト を 配列 と同じくらい便利かつ直観的に参照できるようにします。インデクサーは プロパティ に非常に似ていますが、インデクサーはパラメーター リストを持つことができ、クラスに対して直接ではなく、インスタンス オブジェクトに対してのみ機能します。インデクサーを定義するクラスを使用すると、配列のようにアクセスできます。 [ ] Operatorクラスのメンバーにアクセスします。 (もちろん、インデクサーを介した配列のマッピングなど、高度なアプリケーションはたくさんあります。)
インデクサーを使用すると、クラスまたは構造体のインスタンスに配列と同じようにインデックスを付けることができます。 インデクサーはプロパティに似ていますが、異なる点は、その値関数がパラメータを取ることです。 インデクサーを使用すると、インデクサーへのアクセスにパラメーターが必要であることを除いて、配列と同じ方法でクラスまたは構造体のインスタンスにインデックスを付けることができます。
インデクサーの概要
インデクサーと配列の比較:
(1) インデクサーのインデックス値 (Index) の型は制限されません(2) インデクサーは次のことを許可しますリロード中
(3) インデクサーは
インデクサーと属性の違い
(1) 属性は次のように識別されます名前とインデクサーは関数フォーム識別子(2) インデクサーはオーバーロードできますが、プロパティはオーバーロードできません (3) インデクサーはstaticとして宣言できません、プロパティは 簡単なインデクサーの例 インデクサーのオーバーロード マルチパラメータインデックスデバイス
添字としてstringを使用してインデクサーにアクセスしますusing System;
using System.Collections;
public class IndexerClass
{
private string[] name = new string[2];
//索引器必须以this关键字定义,其实这个this就是类实例化之后的对象
public string this[int index]
{
//实现索引器的get方法
get
{
if (index < 2)
{
return name[index];
}
return null;
}
//实现索引器的set方法
set
{
if (index < 2)
{
name[index] = value;
}
}
}
}
public class Test
{
static void Main()
{
//索引器的使用
IndexerClass Indexer = new IndexerClass();
//“=”号右边对索引器赋值,其实就是调用其set方法
Indexer[0] = "张三";
Indexer[1] = "李四";
//输出索引器的值,其实就是调用其get方法
Console.WriteLine(Indexer[0]);
Console.WriteLine(Indexer[1]);
}
}
public class IndexerClass
{
//用string作为索引器下标的时候,要用Hashtable
private Hashtable name = new Hashtable();
//索引器必须以this关键字定义,其实这个this就是类实例化之后的对象
public string this[string index]
{
get { return name[index].ToString();
set { name.Add(index, value); }
}
}
public class Test
{
static void Main()
{
IndexerClass Indexer = new IndexerClass();
Indexer["A0001"] = "张三";
Indexer["A0002"] = "李四";
Console.WriteLine(Indexer["A0001"]);
Console.WriteLine(Indexer["A0002"]);
}
}
以上がC# のインデクサーの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。