zoukankan      html  css  js  c++  java
  • Expressions表达式树-表达式类型

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

    Add 加法运算,如 a + b,针对数值操作数,不进行溢出检查。
    AddChecked 加法运算,如 (a + b),针对数值操作数,进行溢出检查。
    And 按位或逻辑 AND 运算,如 C# 中的 (a & b) 和 Visual Basic 中的 (a And b)。
    AndAlso 条件 AND 运算,它仅在第一个操作数的计算结果为 true 时才计算第二个操作数。 它对应于 C# 中的 (a && b) 和 Visual Basic 中的 (a AndAlso b)。
    ArrayLength 获取一维数组长长度的运算,如 array.Length。
    ArrayIndex 一维数组中的索引运算,如 C# 中的 array[index] 或 Visual Basic 中的 array(index)。
    Call 方法调用,如在 obj.sampleMethod() 表达式中。
    Coalesce 表示 null 合并运算的节点,如 C# 中的 (a ?? b) 或 Visual Basic 中的 If(a, b)。
    Conditional 条件运算,如 C# 中的 a > b ? a : b 或 Visual Basic 中的 If(a > b, a, b)。
    Constant 一个常量值。
    Convert 强制转换或转换操作,如 C# 中的 (SampleType)obj 或 Visual Basic 中的 CType(obj, SampleType)。 对于数值转换,如果转换后的值对于目标类型来说太大,这不会引发异常。
    ConvertChecked 强制转换或转换操作,如 C# 中的 (SampleType)obj 或 Visual Basic 中的 CType(obj, SampleType)。 对于数值转换,如果转换后的值与目标类型大小不符,则引发异常。
    Divide 除法运算,如 (a / b),针对数值操作数。
    Equal 表示相等比较的节点,如 C# 中的 (a == b) 或 Visual Basic 中的 (a = b)。
    ExclusiveOr 按位或逻辑 XOR 运算,如 C# 中的 (a ^ b) 和 Visual Basic 中的 (a Xor b)。
    GreaterThan “大于”比较,如 (a > b)。
    GreaterThanOrEqual “大于或等于”比较,如 (a >= b)。
    Invoke 调用委托或 lambda 表达式的运算,如 sampleDelegate.Invoke()。
    Lambda lambda 表达式,如 C# 中的 a => a + a 或 Visual Basic 中的 Function(a) a + a。
    LeftShift 按位左移运算,如 (a << b)。
    LessThan “小于”比较,如 (a < b)。
    LessThanOrEqual “小于或等于”比较,如 (a <= b)。
    ListInit 创建新的 IEnumerable 对象并从元素列表中初始化该对象的运算,如 C# 中的 new List<SampleType>(){ a, b, c } 或 Visual Basic 中的 Dim sampleList = { a,  b, c }。
    MemberAccess 从字段或属性进行读取的运算,如 obj.SampleProperty。
    MemberInit 创建新的对象并初始化其一个或多个成员的运算,如 C# 中的 new Point { X = 1, Y = 2 } 或 Visual Basic 中的 New Point With {.X = 1, .Y = 2}。
    Modulo 算术余数运算,如 C# 中的 (a % b) 或 Visual Basic 中的 (a Mod b)。
    Multiply 乘法运算,如 (a * b),针对数值操作数,不进行溢出检查。
    MultiplyChecked 乘法运算,如 (a * b),针对数值操作数,进行溢出检查。
    Negate 算术求反运算,如 (-a)。 不应就地修改 a 对象。
    UnaryPlus 一元加法运算,如 (+a)。 预定义的一元加法运算的结果是操作数的值,但用户定义的实现可以产生特殊结果。
    NegateChecked 算术求反运算,如 (-a),进行溢出检查。 不应就地修改 a 对象。
    New 调用构造函数创建新对象的运算,如 new SampleType()。
    NewArrayInit 创建新的一维数组并从元素列表中初始化该数组的运算,如 C# 中的 new SampleType[]{a, b, c} 或 Visual Basic 中的 New SampleType(){a, b, c}。
    NewArrayBounds 创建新数组(其中每个维度的界限均已指定)的运算,如 C# 中的 new SampleType[dim1, dim2] 或 Visual Basic 中的 New SampleType(dim1, dim2)。
    Not 按位求补运算或逻辑求反运算。 在 C# 中,它与整型的 (~a) 和布尔值的 (!a) 等效。 在 Visual Basic 中,它与 (Not a) 等效。 不应就地修改 a 对象。
    NotEqual 不相等比较,如 C# 中的 (a != b) 或 Visual Basic 中的 (a <> b)。
    Or 按位或逻辑 OR 运算,如 C# 中的 (a | b) 和 Visual Basic 中的 (a Or b)。
    OrElse 短路条件 OR 运算,如 C# 中的 (a || b) 或 Visual Basic 中的 (a OrElse b)。
    Parameter 对在表达式上下文中定义的参数或变量的引用。 有关详细信息,请参阅 ParameterExpression。
    Power 对某个数字进行幂运算的数学运算,如 Visual Basic 中的 (a ^ b)。
    Quote 具有类型为 Expression 的常量值的表达式。 Quote 节点可包含对参数的引用,这些参数在该节点表示的表达式的上下文中定义。
    RightShift 按位右移运算,如 (a >> b)。
    Subtract 减法运算,如 (a - b),针对数值操作数,不进行溢出检查。
    SubtractChecked 算术减法运算,如 (a - b),针对数值操作数,进行溢出检查。
    TypeAs 显式引用或装箱转换,其中如果转换失败则提供 null,如 C# 中的 (obj as SampleType) 或 Visual Basic 中的 TryCast(obj, SampleType)。
    TypeIs 类型测试,如 C# 中的 obj is SampleType 或 Visual Basic 中的 TypeOf obj is SampleType。
    Assign 赋值运算,如 (a = b)。
    Block 表达式块。
    DebugInfo 调试信息。
    Decrement 一元递减运算,如 C# 和 Visual Basic 中的 (a - 1)。 不应就地修改 a 对象。
    Dynamic 动态操作。
    Default 一个默认值。
    Extension 扩展表达式。
    Goto “转到”表达式,如 C# 中的 goto Label 或 Visual Basic 中的 GoTo Label。
    Increment 一元递增运算,如 C# 和 Visual Basic 中的 (a + 1)。 不应就地修改 a 对象。
    Index 索引运算或访问使用参数的属性的运算。
    Label 标签。
    RuntimeVariables 运行时变量的列表。 有关详细信息,请参阅 RuntimeVariablesExpression。
    Loop 一个循环,例如 for 或 while。
    Switch 多分支选择运算,如 C# 中的 switch 或 Visual Basic 中的 Select Case。
    Throw 引发异常的运算,如引发新异常()。
    Try try-catch 表达式。
    Unbox 取消装箱值类型运算,如 MSIL 中的 unbox 和 unbox.any 指令
    AddAssign 加法复合赋值运算,如 (a += b),针对数值操作数,不进行溢出检查。
    AndAssign 按位或逻辑 AND 复合赋值运算,如 C# 中的 (a &= b)。
    DivideAssign 除法复合赋值运算,如 (a /= b),针对数值操作数。
    ExclusiveOrAssign 按位或逻辑 XOR 复合赋值运算,如 C# 中的 (a ^= b)。
    LeftShiftAssign 按位左移复合赋值运算,如 (a <<= b)。
    ModuloAssign 算术余数复合赋值运算,如 C# 中的 (a %= b)。
    MultiplyAssign 乘法复合赋值运算,如 (a *= b),针对数值操作数,不进行溢出检查。
    OrAssign 按位或逻辑 OR 复合赋值运算,如 C# 中的 (a |= b)。
    PowerAssign 对某个数字进行幂运算的复合赋值运算,如 Visual Basic 中的(a ^= b)。
    RightShiftAssign 按位右移复合赋值运算,如 (a >>= b)。
    SubtractAssign 减法复合赋值运算,如 (a -= b),针对数值操作数,不进行溢出检查。
    AddAssignChecked 加法复合赋值运算,如 (a += b),针对数值操作数,并进行溢出检查。
    MultiplyAssignChecked 乘法复合赋值运算,如 (a *= b),针对数值操作数,进行溢出检查。
    SubtractAssignChecked 减法复合赋值运算,如 (a -= b),针对数值操作数,进行溢出检查。
    PreIncrementAssign 一元前缀递增,如 (++a)。 应就地修改 a 对象。
    PreDecrementAssign 一元前缀递减,如 (--a)。 应就地修改 a 对象。
    PostIncrementAssign 一元后缀递增,如 (a++)。 应就地修改 a 对象。
    PostDecrementAssign 一元后缀递减,如 (a--)。 应就地修改 a 对象。
    TypeEqual 确切类型测试。
    OnesComplement 二进制反码运算,如 C# 中的 (~a)。
    IsTrue true 条件值。
    IsFalse false 条件值。
  • 相关阅读:
    Android Wear真机蓝牙调试方法及错误解决方法,设备华为WATCH+小米5
    Ubuntu16.04 Selenium+python 环境搭建 Chromedriver安装
    Ubuntu16.04 为vim安装YouCompleteMe插件
    codeforces 676C Vasya and String 贪心 尺取法
    poj 1177 & hdu 1828 Picture 线段树 扫描线求矩形周长并
    hdu 1542 & poj 1151 Atlantis 线段树扫描线求矩形面积并
    fzu 2109 Mountain Number 数位DP
    fzu 2105 Digits Count 线段树
    codeforces 675D Tree Construction 数据结构
    codeforces 675C Money Transfers 贪心
  • 原文地址:https://www.cnblogs.com/zhuwansu/p/13570993.html
Copyright © 2011-2022 走看看