由於Xamarin.iOS在運行時不支持代碼生成,爲什麼Compile()和DynamicInvoke()會按預期工作?LambdaExpression.Compile()爲什麼在iOS(Xamarin)上工作?
例如,下面的代碼正常工作:
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
是Xamarin在運行時評估表達式樹,而不是發射IL代碼?
我懷疑這樣的事情。這是記錄在任何地方? – 2015-03-27 03:33:24
儘管您的答案有意義,但我想知道是否有參考文件或文檔證實了這一點。 – 2015-03-31 20:30:01
@PhilippeLeybaert我找不到任何東西,這就是我查看源代碼的原因。 – svick 2015-03-31 20:56:26