索引器提供了一種對類內部元素的訪問方法,通過索引器,我們可以方便的控制對元素的訪問,它其實就是帶引數的屬性。索引器一般用在類內部有陣列的情況,不論是基本資料型別陣列,還是類陣列(主要靠arraylist實現)。
先看個簡單的例子,它實現了單一整形輸入引數的索引器。
class a
private int id = new int[10];
public int this [int index]
getif (index>=0 && index<=9)
return id[index];
else
return -1;
set以後就可以通過 例項名加[數字] 的方式訪問id中的元素了。
下來換個引數為字串的,實際上只要把索引器看成乙個函式就行了。
class b
private string clientname = new string[121];
public string this[string index]
set
}訪問時採用如下格式:
b b = new b();
b["0"] = "tom";
上面的例子都是使用靜態陣列,下面換個動態的看看,使用下hashtable。
class c
private hashtable a = new hashtable();
public string this[string key]
return null;
}set
}訪問如下:
c c = new c();
c["tom's nickname"] = "tommy";
再看看多引數的情況,使用類陣列。
先宣告乙個類,類似c中的結構體儲存資料。
class info
public string name
set
}public int courseid
set
}public int score
set }}
然後再宣告含有索引器的類:
class infoarray
public int this[string name, int id]
}return -1;
}set
}public arraylist this[string name]
return l;}}
}訪問則為:
使用多個引數的索引器:
infoarray arr = new infoarray();
arr["tom", 1] = 100;
arr["tom", 2] = 99;
arr["lily", 1] = 100;
使用乙個引數的索引器:
arraylist l = arr["tom"];
foreach (info i in l)
C 索引器學習筆記
本筆記摘抄自 記錄一下學習過程以備後續查用。索引器允許類或者結構的例項按照與陣列相同的方式進行索引取值,索引器與屬性類似,不同的是索引器的訪問是帶參的。索引器和陣列比較 1 索引器的索引值 index 型別不受限制 2 索引器允許過載 3 索引器不是乙個變數 索引器和屬性的不同點 1 屬性以名稱來標...
C 學習筆記 屬性 索引器
屬性 property 是表達事物的狀態的,屬性的訪問方式可以是讀 讀取 也可以是寫 存放 讀 寫屬性分別用get及set來進行表示。修飾符 型別名 屬性名 set 由此可見,在c 中,屬性更好的表達了事物的狀態的設定和獲取。所以在c 中,一般採取以下原則 若在類的內部記錄事物的狀態資訊,則用字段變...
C 索引器(C 學習筆記05)
索引器能夠使物件像陣列一樣被索引,使用陣列的訪問方式 object x 索引器的宣告在某種程度上類似於屬性的宣告,例如,使用 get 和 set 方法來定義乙個索引器。不同的是,屬性值的定義要求返回或設定乙個特定的資料成員,而索引器的定義要求返回或設定的是某個物件例項的乙個值,即索引器將例項資料切分...