由于Xamarin.iOS在运行时不支持代码生成,为什么Compile()和DynamicInvoke()按预期工作?
例如,以下代码工作正常:
var lambda = Expression.Lambda(
Expression.Add(
Expression.Constant(1),
Expression.Constant(2)
)
);
var f = lambda.Compile();
var result = f.DynamicInvoke();
// result==3 at this point
Run Code Online (Sandbox Code Playgroud)
Xamarin是否在运行时评估表达式树而不是发出IL代码?
svi*_*ick 13
在支持代码生成的平台上,LambdaCompiler使用基于Reflection.Emit的.
如果这是不可用,则表达式解释使用解释.例如,有些类可以解释Constant和Add.
| 归档时间: |
|
| 查看次数: |
1388 次 |
| 最近记录: |