c# 中的项目 属性
Item property in c#
C# 中的项目 属性 是否总是像 C# 中的索引器一样使用?
让我用一个example来解释一下。 ArrayList 有许多属性,如计数、容量,其中一个是 Item.Item 属性 与计数和容量不同,计数和容量是通过在 ArrayList 的名称后面加上点来访问的,不被关键字 Item 使用,而是直接被 Indexer 使用.
例如
ArrayList MyList = new ArrayList();
MyList.add(100);
MyList[0] = 200;
如上使用 Item 关键字来定义索引器而不是实现 Item 属性.
我的查询:我可以说每当在 c# 项 属性 被解释时,它应该被隐含地理解它在术语中引用索引器吗?
根据上面的文档,索引器定义如下。
public virtual object this[
int index
] { get; set; }
更准确地说,实际上没有 Item
属性,但索引器在文档中被称为 'Item property'。
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 直接支持 []
语法(如数组),否则它是在 class 中定义的索引器,如上所述使用语法糖。
C# 中的项目 属性 是否总是像 C# 中的索引器一样使用? 让我用一个example来解释一下。 ArrayList 有许多属性,如计数、容量,其中一个是 Item.Item 属性 与计数和容量不同,计数和容量是通过在 ArrayList 的名称后面加上点来访问的,不被关键字 Item 使用,而是直接被 Indexer 使用. 例如
ArrayList MyList = new ArrayList();
MyList.add(100);
MyList[0] = 200;
如上使用 Item 关键字来定义索引器而不是实现 Item 属性.
我的查询:我可以说每当在 c# 项 属性 被解释时,它应该被隐含地理解它在术语中引用索引器吗?
根据上面的文档,索引器定义如下。
public virtual object this[
int index
] { get; set; }
更准确地说,实际上没有 Item
属性,但索引器在文档中被称为 'Item property'。
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 直接支持 []
语法(如数组),否则它是在 class 中定义的索引器,如上所述使用语法糖。