位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 索引符

提問人:劉團(tuán)圓發(fā)布時間:2020-12-07

    索引符(indexer)是一種特殊的屬性,可以把它添加到一個類中,以提供類似于數(shù)組的訪問。實際上,可通過索引符提供更復(fù)雜的訪問,因為我們可以用方括號語法來定義和使用復(fù)雜的參數(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];

    這里需要進(jìn)行顯式數(shù)據(jù)類型轉(zhuǎn)換,因為IList.List屬性返回一個System.Object對象。注意,我們?yōu)檫@個索引符定義了一個類型。使用該索引符訪問某項時,就可以得到這個類型。這種強類型化功能意味著,可以編寫下述代碼:

    animalCollection[0].Feed();

而不是:

    ((Animal)animalCollection[0]).Feed();

這是強類型化的定制集合的另一個方便特性。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部