expression tree

19
Expression Tree drake

description

Expression Tree presented by Drake @20121207

Transcript of expression tree

Page 1: expression tree

Expression Tree

drake

Page 2: expression tree

Expression

• 3• a• !a• a+b• Math.Sin(a)• new StringBuilder()

Page 3: expression tree

Expression

• 3 ConstantExpression• aParameterExpression• !aUnaryExpression• a+bBinaryExpression• Math.Sin(a)MethodCallExpression• new StringBuilder()NewExpression

Page 4: expression tree

Summary

• 運算式的一個重要的特點就是它可以無限地組合,只要符合正確的類型和語義

• +可以用於各類數數值型別的加法,那麼加號的左右就可以是任何類型為相應數值的表達式

Page 5: expression tree

Example

• a + 2 + 3• (a + 2) => b, (b+3)

Page 6: expression tree

Example

• Math.Sin(a) + 3

Page 7: expression tree

Expression

• System.Linq.Expressions1+2+3

Page 8: expression tree

Usage

System.Linq.Expressions.Expression

Page 9: expression tree

Expressioin

• Math.Sin(a)

Page 10: expression tree

Usage

Page 11: expression tree

Lambda Expression

• (parameters) => expression

Page 12: expression tree

Usage

Page 13: expression tree

InvocationExpression

Page 14: expression tree

Usage

Page 15: expression tree

Expression.OrElse Method

Page 16: expression tree

Usage

Page 17: expression tree

Using PredicateBuilder

Page 18: expression tree

PredicateBuilder Source Code

Page 19: expression tree

• Thank you for your listening!