我正在传递一个 lambda 表达式作为参数。

在这种情况下, someObject 有一个名为 property 的属性,可通过 someObject.property 访问。

当我通过时: o => o.childListOfObjects[0].property

其中 childListOfObjects 是一个 List<someObejct> 并且,
expression.Body 返回 o => o.childListOfObjects.get_Item(0).property

跳到最后:
list[i] 是 C# 中 list.get_item(i) 的别名吗?

最佳答案

是的,属性通常只是围绕 get_PropertyNameset_PropertyName 方法的语法糖。

Indexers——例如,list[i]——只是一种特殊类型的属性,基本上是围绕 get_Item(i)set_Item(i) 方法的语法糖。

(请注意,索引器属性不一定必须称为 Itembut that's what it's called on List<T> ,并且这也是自定义类型索引器的默认名称,除非您使用 IndexerNameAttribute 覆盖它。)

关于c# - list[i] 是 C# 中 list.get_item(i) 的别名吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6202523/

10-13 08:42