![]() |
1
6
因为表达式传递到
请注意
编辑 然后您必须从生成的闭包中获取字段,如下所示:
|
![]() |
2
5
如果你知道“酒吧”的类型,你可以这样做(我在这里重复使用代码改善的答案中的一些部分):
在大多数情况下,您可以在表达式树中找到表示对象的表达式,然后编译和执行该表达式并获取对象(顺便说一下,这不是一个非常快速的操作)。所以,您缺少的是compile()方法。您可以在这里找到更多信息: How to: Execute Expression Trees . 在这段代码中,我假设您总是传递一个表达式,比如“()=>object.member”。对于现实场景,您需要分析您是否有所需的表达式(例如,如果不是memberExpression,只抛出异常)。或者使用表情访客,这有点棘手。 我最近在这里回答了一个非常相似的问题: How do I subscribe to an event of an object inside an expression tree? |
![]() |
3
1
站在上面巨人的肩膀上,我最后一个用于提取表示表达式源的类实例的扩展方法如下:
我建立在以上所有答案的基础上,谢谢大家。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |