C#索引器引見。本站提示廣大學習愛好者:(C#索引器引見)文章只能為提供參考,不一定能成為您想要的結果。以下是C#索引器引見正文
索引器是一種特別的類成員,它可以或許讓對象以相似數組的方法來存取,使法式看起來更加直不雅,更輕易編寫。
1、索引器的界說
C#中的類成員可所以隨意率性類型,包含數組和聚集。當一個類包括了數組和聚集成員時,索引器將年夜年夜簡化對數組或聚集成員的存取操作。
界說索引器的方法與界說屬性有些相似,其普通情勢以下:
[潤飾符] 數據類型 this[索引類型 index]
{
get{//取得屬性的代碼}
set{ //設置屬性的代碼}
}
潤飾符包含 public,protected,private,internal,new,virtual,sealed,override, abstract,extern.
數據類型是表現將要存取的數組或聚集元素的類型。
索引器類型表現該索引器應用哪一類型的索引來存取數組或聚集元素,可所以整數,可所以字符串;this表現操作本對象的數組或聚集成員,可以簡略把它懂得成索引器的名字,是以索引器不克不及具有效戶界說的稱號。 例如:
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 >= 100))
{
arr[index] = value;
}
}
}
2、索引器的應用
經由過程索引器可以存取類的實例的數構成員,操作辦法和數組類似,普通情勢以下:
對象名[索引]
個中索引的數據類型必需與索引器的索引類型雷同。例如:
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、索引器與屬性的比擬
索引器與屬性都是類的成員,語法上異常類似。索引器普通用在自界說的聚集類中,經由過程應用索引器來操作聚集對象就好像應用數組一樣簡略;而屬性可用於任何自界說類,它加強了類的字段成員的靈巧性。
屬 性 索 引 器
許可挪用辦法,好像公共數據成員
許可挪用對象上的辦法,好像對象是一個數組
可經由過程簡略的稱號停止拜訪
可經由過程索引器停止拜訪
可認為靜態成員或實例成員
必需為實例成員
其get拜訪器沒有參數
其get拜訪用具有與索引器雷同的形參表
其set拜訪器包括隱式value參數
除value參數外,其set拜訪器還具有與索引器雷同的形參表