您好,登錄后才能下訂單哦!
C#索引器
一:什么是C#的索引器:
是一種特殊的類成員,它能夠讓對象以類似數組的方式來存取,使程序看起來更為直觀,更容易編寫。
二:C#"索引器”典型結構
為了更好的說明 C#“索引器”的功能,參考以下代碼:
class Demo1
{
//容納0個整數的數組
private int[] _Array = new int[10];
/// <summary>
/// 定義索引器
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public int this[int index]
{
set
{
if (index >= 0 && index <= 10)
{
_Array[index] = value;
}
}
get
{
if (index < 0 || index >= 100)
{
return 0;
}
else
{
return _Array[index];
}
}
}
static void Main1(string[] args)
{
Demo1 obj = new Demo1();
obj[0] = 1000;
obj[1] = 2000;
//輸出
Console.WriteLine(obj[0]);
Console.WriteLine(obj[1]);
}
}
三:C#"索引器”與數組的區別
1: 索引器的索引值類型不限定為整數
2:索引器允許重載
3:索引器具有Get 與 Set 訪問器。
四: C#"索引器”與屬性的區別
1:索引器以函數簽名方式this 來標識,而屬性采用名稱(名稱可以任意)來標識。
2:索引器可以重載,屬性不能。
3:索引器不能用Static ,而屬性可以。
索引器允許重載,給了更清晰的表述,請看如下示例:
class Demo2
{
//容納0個整數的數組
private Hashtable _HT = new Hashtable();
private int[] _Array = new int[10];
/// <summary>
/// 定義索引器
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public string this[string index]
{
set
{
_HT.Add(index,value);
}
get
{
return _HT[index].ToString();
}
}
/// <summary>
/// 索引器重載
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public int this[int index]
{
set
{
if (index >= 0 && index <= 10)
{
_Array[index] = value;
}
}
get
{
if (index < 0 || index >= 100)
{
return 0;
}
else
{
return _Array[index];
}
}
}
static void Main(string[] args)
{
Demo2 obj = new Demo2();
obj["zhangSan"] = "張三";
obj["lisi"] = "李四";
obj[1] = 3000;
obj[2] = 4000;
//輸出
Console.WriteLine(obj["zhangSan"]);
Console.WriteLine(obj["lisi"]);
Console.WriteLine(obj[1]);
Console.WriteLine(obj[2]);
}
}
總結:
C#的索引器的使用概率不是很高,一般都集中在游戲開發人員(程序員)需要開發自己的“自定義集合”類型的時候使用,筆者在下一章節來給大家介紹如何開發自己的“自定義集合”。請大家圍觀。
2016年9月5日
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。