C# 中的项属性
本文关键字:属性 | 更新日期: 2023-09-27 17:55:47
c# 中的
项属性是否总是像 C# 中的索引器一样使用?让我用一个例子来解释。ArrayList具有许多属性,如计数,容量,其中之一是Item.Item Property,与计数和容量不同,计数和容量是通过在ArrayList的名称后放置点来访问的,不是由关键字Item使用,而是由索引器直接使用。例如
ArrayList MyList = new ArrayList();
MyList.add(100);
MyList[0] = 200;
如上所示,例如使用 Item 关键字来定义索引器,而不是实现 Item 属性。
我的查询:我能说每当在 c# Item 属性中解释时,都应该隐式理解它指的是术语索引器吗?
MyList[0]
是一个索引器,它使你像数组一样访问对象。定义语法是这样的:
public T this[int index]
{
// reduced for simplicity
set { internalArray[index] = value; }
get { return internalArray[index]; }
}
编译器生成方法:
public T get_Item(inde index)
{
return internalArray[index];
}
和
public void set_Item(inde index, T value)
{
internalArray[index] = value;
}
List.Add(something)
和List[0] = something
之间没有关系。第一种是将值追加到列表末尾的方法。第二种是将方法称为List.set_Item(0, something)
的句法糖。
除非 CLR 直接支持[]
语法(如数组),否则它是在类内部定义的索引器,如上所述使用语法糖。
根据上面的文档,索引器定义如下。
public virtual object this[
int index
] { get; set; }
更准确地说,实际上没有Item
属性,但索引器在文档中称为"Item 属性"。