C#Indexer用法

时间:2009-08-20 16:25:30

标签: c# properties indexer

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

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

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

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

我的问题是:

  1. 这是一个模板化的财产吗?
  2. 我们何时何地可以使用此索引器实现高度代码优化?

2 个答案:

答案 0 :(得分:2)

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

e.g。

public DataType GetItemByIndex(int i)
{
}

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

答案 1 :(得分:1)

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

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