若是你已經用過LINQ, 你應該知道函數方式,以及包含的豐富的類庫, 若是你仍不瞭解, 那根據下面的連接去熟悉一下 the LINQ tutorial, lambda 。express
表達樹提供了豐富的包含參數的函數方式。api
靜態樹解析數據結構
一個表達樹是定義代碼的數據結構ide
var sum = 1 + 2;
二元表達式, 更準確的來講,是一個二元相加表達式, 二元表達式包含二個結點, 二個結點都是固定表達式, 左邊是1, 右邊是2函數
這是一個樹的完總體this
定義定量狀態 (var sum = 1 + 2;
)spa
var sum
)
var
)sum
)=
)1 + 2
)
1
)+
)2
)var finalAnswer = this.SecretSauceFuncion( currentState.createInterimResult(), currentState.createSecondValue(1, 2), decisionServer.considerFinalOptions("hello")) + MoreSecretSauce('A', DateTime.Now, true);
對比表達樹, 上述的方式就太不直觀, 擴展性差code
在.NET Core framework中存在大量的表達式類型, 你能夠從這獲取hereblog
// Addition is an add expression for "1 + 2" var one = Expression.Constant(1, typeof(int)); var two = Expression.Constant(2, typeof(int)); var addition = Expression.Add(one, two);
以上簡單的使用一些靜態類建立表達樹ci