首頁 後端開發 C#.Net教程 深入理解C#索引器(一種支援參數的屬性)與屬性的對比

深入理解C#索引器(一種支援參數的屬性)與屬性的對比

Dec 17, 2016 am 09:22 AM
索引器

索引器是一種特殊的類別成員,它能夠讓物件以類似陣列的方式來訪問,使程式看起來更為直觀,更容易編寫。 
1、索引器的定義
C#中的類別成員可以是任意型,包括陣列和集合。當一個類別包含了陣列和集合成員時,索引器將大大簡化對陣列或集合成員的存取操作。
定義索引器的方式與定義屬性有些類似,其一般形式如下:時,索引器//this表示的是操作本對象的數組或集合成員,可以簡單把它理解成索引器的名字,所以,當相同類型的時候,記得透過參數區分。

//[修饰符] 数据类型 this[索引类型 index]
{
    get{//获得属性的代码}  
    set{ //设置属性的代码}
}
登入後複製

public int this [int index]
{
    get{}
    set{}
}
登入後複製

具體例子如下:

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;
                }
            }
   }
登入後複製

2、索引器的使用
透過索引器可以存取類別的實例的陣列成員,操作方法和陣列相似,一般形式如下:
物件名稱[索引]
修飾符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,extern,其中索引的資料類型必須與索引器的索引類型相同。例如:

Z  z=new  z();
z[0]=100;
z[1]=101;
Console.WriteLine(z[0]);//表示先创建一个对象z,再通过索引来引用该对象中的数组元素。
登入後複製

3、介面中​​的索引器
在介面中也可以宣告索引器,介面索引器與類別索引器的差異有兩個:一是介面索引器不使用修飾符;二是介面索引器只包含存取器get或set,沒有實作語句。存取器的用途是指示索引器是可讀寫、唯讀或只寫的,如果是可讀寫的,存取器get或set均不能省略;如果唯讀的,省略set存取器;如果是唯寫的,省略get訪問器。
例如:

public interface IAddress
{
    string this[int index]{get;set;}
    string Address{get;set;}
    string Answer();
}
登入後複製

表示所聲明的介面IAddress包含3個成員:一個索引器、一個屬性和一個方法,其中,索引器是可讀寫的。
4、索引器與屬性的比較
索引器與屬性都是類別的成員,語法上非常相似。索引器一般用在自訂的集合類別中,透過使用索引器來操作集合物件就如同使用陣列一樣簡單;而屬性可用於任何自訂類,它增強了類別的欄位成員的靈活性。

深入理解C#索引器(一種支援參數的屬性)與屬性的對比



更多深入理解C#索引器(一種支援參數的屬性)與屬性的對比相關文章請關注PHP中文網!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

c語言編譯器怎麼加下一格 c語言編譯器怎麼加下一格 Mar 03, 2025 pm 05:44 PM

c語言編譯器怎麼加下一格

C語言中NULL的替代方案有哪些 C語言中NULL的替代方案有哪些 Mar 03, 2025 pm 05:37 PM

C語言中NULL的替代方案有哪些

c語言編譯器哪個好? c語言編譯器哪個好? Mar 03, 2025 pm 05:39 PM

c語言編譯器哪個好?

C語言中NULL在現代編程中還重要嗎 C語言中NULL在現代編程中還重要嗎 Mar 03, 2025 pm 05:35 PM

C語言中NULL在現代編程中還重要嗎

c語言編譯器網頁版有哪些? c語言編譯器網頁版有哪些? Mar 03, 2025 pm 05:42 PM

c語言編譯器網頁版有哪些?

c語言編譯器複製代碼方法 c語言編譯器複製代碼方法 Mar 03, 2025 pm 05:43 PM

c語言編譯器複製代碼方法

c語言在線編程網站 c語言編譯器官方網站匯總 c語言在線編程網站 c語言編譯器官方網站匯總 Mar 03, 2025 pm 05:41 PM

c語言在線編程網站 c語言編譯器官方網站匯總

c語言編譯器安裝教程(電腦版) c語言編譯器安裝教程(電腦版) Mar 03, 2025 pm 05:41 PM

c語言編譯器安裝教程(電腦版)

See all articles