這行代碼,試圖分配一個lambda表達式到LambaExpression
類型的變量,lambda表達式語法VS LambdaExpression類
LambdaExpression expr = n => n;
它失敗編譯錯誤消息:
不能轉換拉姆達 表達爲 'System.Linq.Expressions.LambdaExpression' 因爲它不是代表 類型
所以它需要是一個委託類型。從概念上講,我覺得很奇怪,因爲我可以使用像這樣的工廠方法構建一個LambdaExpression
實例。
廠拉姆達from MSDN
LambdaExpression lambdaExpr = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
new List<ParameterExpression>() { paramExpr }
);
這不是一個委託類型。
它使我們想知道爲什麼lambda到LambaExpression不能工作?