索引器型別及其引數型別必須至少如同索引器本身一樣是可訪問的。有關可訪問級別的更多資訊,請參見訪問修飾符
。索引器的簽名由其形參的數量和型別組成。它不包括索引器型別或形參名。如果在同一類中宣告乙個以上的索引器,則它們必須具有不同的簽名。
索引器值不歸類為變數;因此,不能將索引器值作為 ref
或 out
引數來傳遞。
要為索引器提供乙個其他語言可以使用的名字,請使用宣告中的 name 屬性。例如:
copy code
[system.runtime.compilerservices.indexername("theitem")]此索引器將具有名稱 theitem。不提供名稱屬性將生成 item 預設名稱。public int this [int index] // indexer declaration
下面的示例說明如何宣告私有陣列字段、arr 和索引器。使用索引器可直接訪問例項 test[i]。另一種使用索引器的方法是將陣列宣告為 public
成員並直接訪問它的成員 arr[i]。
c# copy code
class indexerclasselse
}set}}
}class mainclass
= ", i, test[i]);}}
}
element #0 = 0
element #1 = 0
element #2 = 0
element #3 = 256
element #4 = 0
element #5 = 1024
element #6 = 0
element #7 = 0
element #8 = 0
element #9 = 0
element #10 = 0
請注意,當計算索引器的訪問時(例如,在console.write語句中),將呼叫 get
訪問器。因此,如果get訪問器不存在,將發生編譯時錯誤。
c# 並不將索引型別限制為整數。例如,對索引器使用字串可能是有用的。通過搜尋集合內的字串並返回相應的值,可以實現此類的索引器。由於訪問器可被過載,字串和整數版本可以共存。
在此例中,宣告了儲存星期幾的類。宣告了乙個get訪問器,它接受字串(天名稱),並返回相應的整數。例如,星期日將返回 0,星期一將返回 1,等等。
c# copy code
// using a string as an indexer value5class daycollection
; // this method finds the day or returns -1
private
int getday(string testday)
i++;
}return -1;
}// the get accessor returns an integer for a given string
public
intthis[string day]
}}class program
}
-1
提高索引器的安全性和可靠性有兩種主要的方法:
索引器與迭代器的使用
選代器的本地檔案 e diablo inumerator classlibrary2 classlibrary2 program.cs c 索引器使用方法介紹 訪問類中的集合,希望好像類本身就是乙個陣列一樣引器是一種c 的語法構造,可以用我們熟悉的陣列方括號語法訪問類中的集合 語法 型別 this ...
Material Design的其他使用
material design給予影象兩個新功能tint著色和clip剪裁 第乙個著色很簡單,你只需要在xml檔案中配置好android tint屬性和android tintmode屬性就可以。效果顯而易見,如圖所示 接下來說一下裁剪的功能,你可以通過裁剪改變乙個檢視的外形。首先需要使用viewo...
C 索引器 索引器的定義
索引器定義類似於屬性,但其功能與屬性並不相同。索引器提供一種特殊的方法編寫get和set訪問器。屬性可以像訪問字段一樣訪問物件的資料,索引器可以使使用者像訪問陣列一樣訪問類成員。定義索引器的語法如下 訪問修飾符 型別名稱 this 型別名稱 引數名 set索引器沒有像屬性和方法那樣的名字,關鍵字th...