C#索引器的使用

C#索引器的使用,c#,properties,indexer,C#,Properties,Indexer,要使用索引器,我们使用以下格式: class ClassName { DataType[] ArrayName = new DataType[Length]; public DataType this[int i] { get { return ArrayName[i]; } } } 为了简单起见,我使用了这种格式,尽管我们也可以使用自定义索引器。根据我的理解,我们正在保留一个索引的属性数组 我的问题是: 它是一个模板属性吗 何时何地可以使用

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

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

    public DataType this[int i]
    {
        get { return ArrayName[i]; }
    }
}
为了简单起见,我使用了这种格式,尽管我们也可以使用自定义索引器。根据我的理解,我们正在保留一个索引的属性数组

我的问题是:

  • 它是一个模板属性吗
  • 何时何地可以使用此索引器实现高度代码优化
  • 这不是一个模板化属性,而是一个parameterful属性,它是一个接受参数参数的属性

    这可以归结为一个
    get\u Item(Int32)
    方法来代替编译器通常发出的
    get\u Item()
    方法来代替无参数属性。因此,这不会带来太多的优化机会。

    这不是一个模板化属性,而是一个参数化属性,即接受参数参数的属性


    这可以归结为一个
    get\u Item(Int32)
    方法来代替编译器通常发出的
    get\u Item()
    方法来代替无参数属性。因此,这不会为优化带来太多机会。

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

    e、 g


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

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

    e、 g


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

    这个极其重要的问题有一个惊人的双曲线标题。这是一个完美的cromulent标题。天哪,轻松点。人们来这里是为了提问和学习。这个极其重要的问题有一个惊人的夸张标题。这是一个完美的cromulent标题。天啊,放轻松点。人们在这里提问和学习。
    public DataType GetItemByIndex(int i)
    {
    }