C# 索引符
索引符(indexer)是一種特殊的屬性,可以把它添加到一個類中,以提供類似于數(shù)組的訪問。實際上,可通過索引符提供更復雜的訪問,因為我們可以用方括號語法來定義和使用復雜的參數(shù)類型。它最常見的一個用法 是對項實現(xiàn)簡單的數(shù)字索引。
可以在Animal對象的Animals集合中添加一個索引符,如下所示:
public class Animals : CollectionBase
{
...
public Animal this[int animallndex]
{
get { return {Animal)List[animalIndex] ; }
Set { List[animalIndex] = value; }
this關(guān)鍵字需要與方括號中的參數(shù)一起使用,除此以外,索引符與其他屬性十分類似。這個語法是合理的,因為在訪問索引符時,將使用對象名,后跟放在方括號中的索引參數(shù)(例如MyAnimals[0])。
這段代碼對List屬性使用了一個索引符(即在IList接口上,可以訪問CollectkmBase中的ArrayList,ArrayList存儲了項):
return (Animal)List[animallndex];
這里需要進行顯式數(shù)據(jù)類型轉(zhuǎn)換,因為IList.List屬性返回一個System.Object對象。注意,我們?yōu)檫@個索引符定義了一個類型。使用該索引符訪問某項時,就可以得到這個類型。這種強類型化功能意味著,可以編寫下述代碼:
animalCollection[0].Feed();
而不是:
((Animal)animalCollection[0]).Feed();
這是強類型化的定制集合的另一個方便特性。
點擊加載更多評論>>