1. 程式人生 > 實用技巧 >Expressions表示式樹-表示式型別

Expressions表示式樹-表示式型別

參考https://docs.microsoft.com/zh-cn/dotnet/api/system.linq.expressions.expressiontype?view=netcore-3.1

FIELDS
Add 0

加法運算,如a + b,針對數值運算元,不進行溢位檢查。

AddAssign 63

加法複合賦值運算,如(a += b),針對數值運算元,不進行溢位檢查。

AddAssignChecked 74

加法複合賦值運算,如(a += b),針對數值運算元,並進行溢位檢查。

AddChecked 1

加法運算,如(a + b),針對數值運算元,進行溢位檢查。

And 2

按位或邏輯AND運算,如 C# 中的(a & b)和 Visual Basic 中的(a And b)

AndAlso 3

條件AND運算,它僅在第一個運算元的計算結果為true時才計算第二個運算元。它對應於 C# 中的(a && b)和 Visual Basic 中的(a AndAlso b)

AndAssign 64

按位或邏輯AND複合賦值運算,如 C# 中的(a &= b)

ArrayIndex 5

一維陣列中的索引運算,如 C# 中的array[index]或 Visual Basic 中的array(index)

ArrayLength 4

獲取一維陣列長長度的運算,如array.Length

Assign 46

賦值運算,如(a = b)

Block 47

表示式塊。

Call 6

方法呼叫,如在obj.sampleMethod()表示式中。

Coalesce 7

表示 null 合併運算的節點,如 C# 中的(a ?? b)或 Visual Basic 中的If(a, b)

Conditional 8

條件運算,如 C# 中的a > b ? a : b或 Visual Basic 中的If(a > b, a, b)

Constant 9

一個常量值。

Convert 10

強制轉換或轉換操作,如 C# 中的(SampleType)obj或 Visual Basic 中的CType(obj, SampleType)對於數值轉換,如果轉換後的值對於目標型別來說太大,這不會引發異常。

ConvertChecked 11

強制轉換或轉換操作,如 C# 中的(SampleType)obj或 Visual Basic 中的CType(obj, SampleType)對於數值轉換,如果轉換後的值與目標型別大小不符,則引發異常。

DebugInfo 48

除錯資訊。

Decrement 49

一元遞減運算,如 C# 和 Visual Basic 中的(a - 1)不應就地修改a物件。

Default 51

一個預設值。

Divide 12

除法運算,如(a / b),針對數值運算元。

DivideAssign 65

除法複合賦值運算,如(a /= b),針對數值運算元。

Dynamic 50

動態操作。

Equal 13

表示相等比較的節點,如 C# 中的(a == b)或 Visual Basic 中的(a = b)

ExclusiveOr 14

按位或邏輯XOR運算,如 C# 中的(a ^ b)和 Visual Basic 中的(a Xor b)

ExclusiveOrAssign 66

按位或邏輯XOR複合賦值運算,如 C# 中的(a ^= b)

Extension 52

擴充套件表示式。

Goto 53

“轉到”表示式,如 C# 中的goto Label或 Visual Basic 中的GoTo Label

GreaterThan 15

“大於”比較,如(a > b)

GreaterThanOrEqual 16

“大於或等於”比較,如(a >= b)

Increment 54

一元遞增運算,如 C# 和 Visual Basic 中的(a + 1)不應就地修改a物件。

Index 55

索引運算或訪問使用引數的屬性的運算。

Invoke 17

呼叫委託或 lambda 表示式的運算,如sampleDelegate.Invoke()

IsFalse 84

false條件值。

IsTrue 83

true條件值。

Label 56

標籤。

Lambda 18

lambda 表示式,如 C# 中的a => a + a或 Visual Basic 中的Function(a) a + a

LeftShift 19

按位左移運算,如(a << b)

LeftShiftAssign 67

按位左移複合賦值運算,如(a <<= b)

LessThan 20

“小於”比較,如(a < b)

LessThanOrEqual 21

“小於或等於”比較,如(a <= b)

ListInit 22

建立新的IEnumerable物件並從元素列表中初始化該物件的運算,如 C# 中的new List<SampleType>(){ a, b, c }或 Visual Basic 中的Dim sampleList = { a, b, c }

Loop 58

一個迴圈,例如forwhile

MemberAccess 23

從欄位或屬性進行讀取的運算,如obj.SampleProperty

MemberInit 24

建立新的物件並初始化其一個或多個成員的運算,如 C# 中的new Point { X = 1, Y = 2 }或 Visual Basic 中的New Point With {.X = 1, .Y = 2}

Modulo 25

算術餘數運算,如 C# 中的(a % b)或 Visual Basic 中的(a Mod b)

ModuloAssign 68

算術餘數複合賦值運算,如 C# 中的(a %= b)

Multiply 26

乘法運算,如(a * b),針對數值運算元,不進行溢位檢查。

MultiplyAssign 69

乘法複合賦值運算,如(a *= b),針對數值運算元,不進行溢位檢查。

MultiplyAssignChecked 75

乘法複合賦值運算,如(a *= b),針對數值運算元,進行溢位檢查。

MultiplyChecked 27

乘法運算,如(a * b),針對數值運算元,進行溢位檢查。

Negate 28

算術求反運算,如(-a)不應就地修改a物件。

NegateChecked 30

算術求反運算,如(-a),進行溢位檢查。不應就地修改a物件。

New 31

呼叫建構函式建立新物件的運算,如new SampleType()

NewArrayBounds 33

建立新陣列(其中每個維度的界限均已指定)的運算,如 C# 中的new SampleType[dim1, dim2]或 Visual Basic 中的New SampleType(dim1, dim2)

NewArrayInit 32

建立新的一維陣列並從元素列表中初始化該陣列的運算,如 C# 中的new SampleType[]{a, b, c}或 Visual Basic 中的New SampleType(){a, b, c}

Not 34

按位求補運算或邏輯求反運算。在 C# 中,它與整型的(~a)和布林值的(!a)等效。在 Visual Basic 中,它與(Not a)等效。不應就地修改a物件。

NotEqual 35

不相等比較,如 C# 中的(a != b)或 Visual Basic 中的(a <> b)

OnesComplement 82

二進位制反碼運算,如 C# 中的(~a)

Or 36

按位或邏輯OR運算,如 C# 中的(a | b)和 Visual Basic 中的(a Or b)

OrAssign 70

按位或邏輯OR複合賦值運算,如 C# 中的(a |= b)

OrElse 37

短路條件OR運算,如 C# 中的(a || b)或 Visual Basic 中的(a OrElse b)

Parameter 38

對在表示式上下文中定義的引數或變數的引用。有關詳細資訊,請參閱ParameterExpression

PostDecrementAssign 80

一元后綴遞減,如(a--)應就地修改a物件。

PostIncrementAssign 79

一元后綴遞增,如(a++)應就地修改a物件。

Power 39

對某個數字進行冪運算的數學運算,如 Visual Basic 中的(a ^ b)

PowerAssign 71

對某個數字進行冪運算的複合賦值運算,如 Visual Basic 中的(a ^= b)

PreDecrementAssign 78

一元字首遞減,如(--a)應就地修改a物件。

PreIncrementAssign 77

一元字首遞增,如(++a)應就地修改a物件。

Quote 40

具有型別為Expression的常量值的表示式。Quote節點可包含對引數的引用,這些引數在該節點表示的表示式的上下文中定義。

RightShift 41

按位右移運算,如(a >> b)

RightShiftAssign 72

按位右移複合賦值運算,如(a >>= b)

RuntimeVariables 57

執行時變數的列表。有關詳細資訊,請參閱RuntimeVariablesExpression

Subtract 42

減法運算,如(a - b),針對數值運算元,不進行溢位檢查。

SubtractAssign 73

減法複合賦值運算,如(a -= b),針對數值運算元,不進行溢位檢查。

SubtractAssignChecked 76

減法複合賦值運算,如(a -= b),針對數值運算元,進行溢位檢查。

SubtractChecked 43

算術減法運算,如(a - b),針對數值運算元,進行溢位檢查。

Switch 59

多分支選擇運算,如 C# 中的switch或 Visual Basic 中的Select Case

Throw 60

引發異常的運算,如引發新異常()

Try 61

try-catch表示式。

TypeAs 44

顯式引用或裝箱轉換,其中如果轉換失敗則提供null,如 C# 中的(obj as SampleType)或 Visual Basic 中的TryCast(obj, SampleType)

TypeEqual 81

確切型別測試。

TypeIs 45

型別測試,如 C# 中的obj is SampleType或 Visual Basic 中的TypeOf obj is SampleType

UnaryPlus 29

一元加法運算,如(+a)預定義的一元加法運算的結果是運算元的值,但使用者定義的實現可以產生特殊結果。

Unbox 62

取消裝箱值型別運算,如 MSIL 中的unboxunbox.any指令