.netに関するいくつかの基礎知識(二)

4828 ワード

インデックスは何ですか?何の役に立つの?インデックスは、クラスのインスタンスがアクセス配列としてオブジェクト内のプロパティにアクセスできるようにします.dr["name"="test"に似ているか、config["connectString"]で接続文字列の値を取得することがよく見られます.これはすべてインデックスを使用する例ですが、どのようにして自分のクラスでインデックスを定義しますか?
インデックスの定義は非常に簡単で、thisキーを使用するだけでいいです.Thisキーワードは現在インスタンス化されているオブジェクトを表しているので、インデックスは静的ではなく、インスタンス化されてからしか使用できないことがわかります.次の例を見てください.
   1: public class People:IAnimal

    
   2:     {

    
   3:         private string strName;

    
   4:  

    
   5:         public string StrName

    
   6:         {

    
   7:             get { return strName; }

    
   8:             set { strName = value; }

    
   9:         }

    
  10:  

    
  11:         private string strNo;

    
  12:  

    
  13:         public string StrNo

    
  14:         {

    
  15:             get { return strNo; }

    
  16:             set { strNo = value; }

    
  17:         }

    
  18:  

    
  19:  

    
  20:         public string this[int a]

    
  21:         {

    
  22:             get

    
  23:             {

    
  24:                 if (a == 0)

    
  25:                 {

    
  26:                     return this.strName;

    
  27:                 }

    
  28:                 else

    
  29:                 {

    
  30:                     return this.strNo;

    
  31:                 }

    
  32:             }

    
  33: