C#初學之索引器(Indexer)

來源:互聯網
上載者:User

標籤:

注意:以下大部分內容為網上資料或其他朋友的博客摘錄

本人初學.net,希望前輩們多多指教和交流

索引器(Indexer)是C#引入的一個新型的類成員,它使得類中的對象可以像數組那樣方便、直觀的被引用。 索引器非常類似於屬性,但索引器包含索引參數(放在 [ ] 內),而且索引器是無名稱的(由於 this 被索引,因此在聲明中使用的“名稱”為 this),且只能作用在執行個體對象上,而不能在類上直接作用。定義了索引器的類可以讓您像訪問數組一樣的使用 [ ] 運算子訪問類的成員。

下面給出一個例子:

請看代碼,下面是類的定義,中間包含了一個索引器定義

public class Person
     {
        //定義兩個欄位資訊
        private string name;
        private string password;

        //定義一個 Name 屬性來操作 name 欄位
        public string Name
         {
            set { name = value; }
            get { return name; }
         }

        //定義一個 Password 屬性來操作 password 欄位
        public string Password
         {
            set { password = value; }
            get { return password; }
         }

        //定義索引器,name 欄位的索引值為 0 ,password 欄位的索引值為 1
        public string this[int index]
         {
            get
             {
                if (index == 0) return name;
                else if (index == 1) return password;
                else return null;
             }
            set
             {
                if (index == 0) name = value;
                else if (index == 1) password = value;
             }
         }
     }

下面是使用索引器的方法:

protected void Page_Load(object sender, EventArgs e)
     {
        //聲明並執行個體化這個類
         Person p = new Person();

        //使用索引器的方式來給類的兩個屬性賦值
         p[0] = "jarod";       //從這裡可以看出,對象中的欄位就可以像數組那樣輕鬆的訪問了       【這裡是給name和password賦值的】
         p[1] = "123456,./";

        //使用類屬性取得兩個欄位資訊
         Label1.Text = p.Name + " / " + p.Password;
     }

 

到此為止我想大家應該大致有個把握了,那麼還有一些細節需要補充:

(1)       說明使用者是否可以定義索引指標的名稱。

              答:不能使用使用者自訂的名稱  就是this【索引表】

(2)       使用索引指標的時候怎麼避免數組越界問題

              這個問題希望會的朋友解答一下

(3)       使用索引指標為我們帶來了那些方便

               答:    可以不完全封閉欄位(與屬性相似)、像使用數組一樣訪問欄位值或修改

 

—————————————學而不思則罔,思而不學則殆———————————————————

 

C#初學之索引器(Indexer)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.