位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# 索引符

提问人:刘团圆发布时间:2020-12-07

    索引符(indexer)是一种特殊的属性,可以把它添加到一个类中,以提供类似于数组的访问。实际上,可通过索引符提供更复杂的访问,因为我们可以用方括号语法来定义和使用复杂的参数类型。它最常见的一个用法 是对项实现简单的数字索引。

    可以在Animal对象的Animals集合中添加一个索引符,如下所示:

public class Animals : CollectionBase 

{

    ...

    public Animal this[int animallndex]

    {

        get { return {Animal)List[animalIndex] ; }

        Set { List[animalIndex] = value; }

    this关键字需要与方括号中的参数一起使用,除此以外,索引符与其他属性十分类似。这个语法是合理的,因为在访问索引符时,将使用对象名,后跟放在方括号中的索引参数(例如MyAnimals[0])。

    这段代码对List属性使用了一个索引符(即在IList接口上,可以访问CollectkmBase中的ArrayList,ArrayList存储了项):

    return (Animal)List[animallndex];

    这里需要进行显式数据类型转换,因为IList.List属性返回一个System.Object对象。注意,我们为这个索引符定义了一个类型。使用该索引符访问某项时,就可以得到这个类型。这种强类型化功能意味着,可以编写下述代码:

    animalCollection[0].Feed();

而不是:

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

这是强类型化的定制集合的另一个方便特性。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部