list [i]是C#中list.get_item(i)的别名吗?

Stu*_*ser 4 c# lambda alias list

我将lambda表达式作为参数传递.

在这种情况下,someObject有一个名为propertyaccessible with 的属性someObject.property.

当我经过:o => o.childListOfObjects[0].property,

哪里childListOfObjectsList<someObejct>和,

expression.Body回报o => o.childListOfObjects.get_Item(0).property.

跳到最后:

是C#list[i]的别名list.get_item(i)吗?

Luk*_*keH 8

是的,一般来说,属性只是语法糖get_PropertyNameset_PropertyName方法.

索引器 - 例如,list[i]- 只是一种特殊类型的属性,基本上是语法糖get_Item(i)set_Item(i)方法.

(请注意,索引器属性不一定要被调用Item,但这就是它被调用的内容List<T>,这也是自定义类型的索引器的默认名称,除非你使用它来覆盖它IndexerNameAttribute.)