这[0]是什么?c#中的平均值
本文关键字:平均值 是什么 | 更新日期: 2023-09-27 18:14:30
我正在检查一些库代码,看到一个方法,如:
public CollapsingRecordNodeItemList List
{
get { return this[0] as CollapsingRecordNodeItemList; }
}
包含此方法的类不是列表或可迭代的东西,那么this[0]
究竟是什么意思?
查找类中的索引器
c#允许你定义索引器来允许这种访问。
下面是一个来自"SampleCollection"官方指南的例子。
public T this[int i]
{
get
{
// This indexer is very simple, and just returns or sets
// the corresponding element from the internal array.
return arr[i];
}
set
{
arr[i] = value;
}
}
以下是官方语言规范中的定义:
indexer是一个成员,它使对象能够像数组一样被索引。索引器的声明方式类似于属性,不同之处在于,成员名是this,后跟在分隔符[和]之间写入的参数列表。这些参数在索引器的访问器中可用。与属性类似,索引器可以是读写、只读和仅写,并且索引器的访问器可以是虚拟的。
可以在规范的10.9 Indexers小节中找到完整的定义。
这意味着声明类型(或其基类)有一个"索引器",该索引器可能接受int
(或类似)并返回…什么(也许是object
?)。代码调用索引器的get
访问器,传递0
作为索引-然后将返回值视为CollapsingRecordNodeItemList
(或null
,返回值与之不兼容)。
public object this[int index] {
get { return someOtherList[index]; }
}
然而,最简单的方法就是进入它。这将告诉你确切的它要去哪里
假设类本身继承了某种形式的IList
/IList<T>
,它只是返回(并强制转换)集合中的第一个元素。
public class BarCollection : System.Collections.CollectionBase
{
public Bar FirstItem
{
get { return this[0] as Bar; }
}
#region Coming From CollectionBase
public Object this[ int index ] {
get { return this.InnerList[index]; }
set { this.InnerList[index] = value; }
}
#endregion
}
这意味着在这个类上调用item
属性的get
方法。它被称为类的索引器
索引器允许类或结构的实例像数组一样被索引。索引器类似于属性,只是它们的访问器接受形参。