|
什么是表達式樹?
表達式樹又稱為表達式目錄樹,以數據形式表示語言級代碼。所有的數據都存儲在樹結構中,每個結點表示一個表達式(Expression)。要想手動生成表達式樹我們需要引用System.Linq.Expressions 命名空間,最重要的一個類是Expression,它是所有表達式的基類。例如:
1:參數表達式:ParameterExpression,就是一個方法中的參數,例如 search(string key),key可以看成是一個參數表達式。
2:二元表達式:BinaryExpression,例如a+b等。
3:方法調用表達式:MethodCallExpression,例如:自定義LINQ提供程序中實現orderby 的操作:
MethodCallExpression orderByCallExpression = Expression.Call(typeof(Queryable),
"OrderBy",
new Type[] { queryableData.ElementType, queryableData.ElementType
},
whereCallExpression,
Expression.Lambda<Func<string, string>>(pe, new ParameterExpression
[] { pe }));
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。