C# インデクサー (パラメーターをサポートするプロパティ) とプロパティの比較についての深い理解

高洛峰
リリース: 2016-12-17 09:22:14
オリジナル
1531 人が閲覧しました

Indexer は、配列のような方法でオブジェクトにアクセスできるようにする特別なクラス メンバーであり、プログラムをより直感的で簡単に作成できるようにします。
1. インデクサーの定義
C# のクラス メンバーは、配列やコレクションを含む任意の型にすることができます。クラスに配列メンバーとコレクション メンバーが含まれている場合、インデクサーは配列メンバーまたはコレクション メンバーへのアクセスを大幅に簡素化します。インデクサーを定義する方法は、属性の定義に似ています。その一般的な形式は次のとおりです: インデクサー //これは、このオブジェクトを操作する配列またはコレクションのメンバーを表します。したがって、単純にインデクサーの名前として理解できます。 、とき 同じ型の場合は、パラメータで区別することを忘れないでください。

//[修饰符] 数据类型 this[索引类型 index]
{
    get{//获得属性的代码}  
    set{ //设置属性的代码}
}
ログイン後にコピー

など

public int this [int index]
{
    get{}
    set{}
}
ログイン後にコピー

2. インデクサーの使い方

インデクサーは、クラスのインスタンスの配列メンバーにアクセスすることができます。一般的な形式は次のとおりです。

オブジェクト名 [インデックス]

修飾子には、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 <= 0))
                {
                    arr[index] = value;
                }
            }
   }
ログイン後にコピー

3. インターフェイス内のインデクサー
インターフェイス内でインデクサーを宣言することもできます。インターフェイス インデクサーとクラス インデクサーには 2 つの違いがあります。1 つ目は、インターフェイス インデクサーには、アクセサーの get またはのみが含まれます。設定されており、実装ステートメントはありません。アクセサーの目的は、インデクサーが読み取り/書き込みであるか、読み取り専用であるか、書き込み専用であるかを示すことです。読み取り専用の場合は get アクセサーも set アクセサーも省略できません。アクセサーは省略されます。書き込み専用の場合は、get アクセサーを省略します。

例:

Z  z=new  z();
z[0]=100;
z[1]=101;
Console.WriteLine(z[0]);//表示先创建一个对象z,再通过索引来引用该对象中的数组元素。
ログイン後にコピー

は、宣言されたインターフェイス IAddress に、インデクサー、プロパティ、メソッドの 3 つのメンバーが含まれており、そのうちのインデクサーが読み取りおよび書き込み可能であることを意味します。
4. インデクサーと属性の比較

インデクサーと属性はどちらもクラスのメンバーであり、構文は非常に似ています。インデクサーは通常、カスタム コレクション クラスで使用されます。インデクサーを使用してコレクション オブジェクトを操作するのは、配列プロパティを使用するのと同じくらい簡単です。これにより、クラスのフィールド メンバーの柔軟性が向上します。



C# インデクサー (パラメーターをサポートするプロパティ) とプロパティの比較についての深い理解


C# インデクサー (パラメーターをサポートするプロパティ) とプロパティの比較をさらに詳しく理解するには、PHP 中国語 Web サイトの関連記事に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート