0

要拥有索引器,我们使用以下格式:

class ClassName
{
    DataType[] ArrayName = new DataType[Length]; 

    public DataType this[int i]
    {
        get { return ArrayName[i]; }
    }
}

为了简单起见,我使用了该格式,尽管我们也可以使用自定义索引器。根据我的理解,我们保留了一个索引的属性数组。

我的问题是:

  1. 它是模板属性吗?
  2. 我们何时何地可以使用此索引器实现高度代码优化?
4

2 回答 2

2

这与代码优化无关。
您可以在您的类中编写一个方法,该方法可以从它所拥有的集合中获取项目。

例如

public DataType GetItemByIndex(int i)
{
}

索引器在某种程度上是“语法糖”,让用户将实例视为数组或集合。

于 2009-08-20T16:31:43.847 回答
1

这不是模板属性,它是一个有参数的属性 - 这是一个接受参数参数的属性。

这归结为简单的get_Item(Int32)方法来代替get_Item()通常由编译器发出来代替无参数属性的方法。因此,这并没有为优化提供太多机会。

于 2009-08-20T16:27:12.810 回答