C# Expression 核心操作符、表达式、操作方法
作者:互联网
版权声明:本文为CSDN博主「移山小斗车」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhuqinfeng/article/details/70168337
1 一、Expression中的操作运算符 2 成员名称 说明 3 Add 4 加法运算,如 a + b, ,不进行溢出检查,针对数值操作数。 5 6 AddAssign 7 加法复合赋值运算,如 (a += b), ,不进行溢出检查,针对数值操作数。 8 9 AddAssignChecked 10 加法复合赋值运算,如 (a += b), ,进行溢出检查,针对数值操作数。 11 12 AddChecked 13 加法运算,如 (a + b), ,进行溢出检查,针对数值操作数。 14 15 And 16 按位或逻辑 AND 操作,如 (a & b) 在 C# 和 (a And b) 在 Visual Basic 中。 17 18 AndAlso 19 在条件 AND 仅当第一个操作数的计算结果为才计算第二个操作数的操作 true。 它对应于 (a && b) 在 C# 和 (a AndAlso b) 在 Visual Basic 中。 20 21 AndAssign 22 按位或逻辑 AND 复合赋值运算,如 (a &= b) C# 中。 23 24 ArrayIndex 25 索引操作在一维数组中,如 array[index] 在 C# 或 array(index) 在 Visual Basic 中。 26 27 ArrayLength 28 获取一维数组的长度,如操作 array.Length。 29 30 Assign 31 赋值运算,如 (a = b)。 32 33 Block 34 表达式的块。 35 36 Call 37 某个方法调用,如在 obj.sampleMethod() 表达式。 38 39 Coalesce 40 一个表示空合并操作,如节点 (a ?? b) 在 C# 或 If(a, b) 在 Visual Basic 中。 41 42 Conditional 43 条件运算,如 a > b ? a : b 在 C# 或 If(a > b, a, b) 在 Visual Basic 中。 44 45 Constant 46 常量的值。 47 48 Convert 49 强制转换或转换操作中,如 (SampleType)obj C# 中或 CType(obj, SampleType) 在 Visual Basic 中。 对于数值的转换,如果转换后的值对于目标类型来说太大不引发异常。 50 51 ConvertChecked 52 强制转换或转换操作中,如 (SampleType)obj C# 中或 CType(obj, SampleType) 在 Visual Basic 中。 对于数值的转换,如果转换后的值不符合目标类型是引发异常。 53 54 DebugInfo 55 调试信息。 56 57 Decrement 58 一元递减操作,如 (a - 1) C# 和 Visual Basic 中。 该对象 a 不应就地修改。 59 60 Default 61 默认值。 62 63 Divide 64 除法运算,如 (a / b), ,针对数值操作数。 65 66 DivideAssign 67 除的复合赋值运算,如 (a /= b), ,针对数值操作数。 68 69 Dynamic 70 动态操作。 71 72 Equal 73 一个表示相等比较,如节点 (a == b) 在 C# 或 (a = b) 在 Visual Basic 中。 74 75 ExclusiveOr 76 按位或逻辑 XOR 操作,如 (a ^ b) 在 C# 或 (a Xor b) 在 Visual Basic 中。 77 78 ExclusiveOrAssign 79 按位或逻辑 XOR 复合赋值运算,如 (a ^= b) C# 中。 80 81 Extension 82 扩展表达式。 83 84 Goto 85 一个"转到"表达式,如 goto Label 在 C# 或 GoTo Label 在 Visual Basic 中。 86 87 GreaterThan 88 "大于"比较,如 (a > b)。 89 90 GreaterThanOrEqual 91 "大于或等于"比较,如 (a >= b)。 92 93 Increment 94 一元递增操作,如 (a + 1) C# 和 Visual Basic 中。 该对象 a 不应就地修改。 95 96 Index 97 索引操作或访问不采用参数的属性的操作。 98 99 Invoke 100 操作调用的委托或 lambda 表达式,如 sampleDelegate.Invoke()。 101 102 IsFalse 103 一个 false 条件值。 104 105 IsTrue 106 一个 true 条件值。 107 108 Label 109 标签。 110 111 Lambda 112 Lambda 表达式,如 a => a + a 在 C# 或 Function(a) a + a 在 Visual Basic 中。 113 114 LeftShift 115 按位左移运算,如 (a << b)。 116 117 LeftShiftAssign 118 按位左移复合赋值运算,如 (a <<= b)。 119 120 LessThan 121 "小于"比较,如 (a < b)。 122 123 LessThanOrEqual 124 "小于或等于"比较,如 (a <= b)。 125 126 ListInit 127 创建一个新的操作的 IEnumerable 对象,并对其进行初始化从列表中的元素,如 new List<SampleType>(){ a, b, c } 在 C# 或 Dim sampleList = { a, b, c } 在 Visual Basic 中。 128 129 Loop 130 一个循环,如 for 或 while。 131 132 MemberAccess 133 从一个字段或属性,如读取操作 obj.SampleProperty。 134 135 MemberInit 136 运算,创建一个新的对象并初始化一个或多个成员,如 new Point { X = 1, Y = 2 } 在 C# 或 New Point With {.X = 1, .Y = 2} 在 Visual Basic 中。 137 138 Modulo 139 算术余数运算,如 (a % b) 在 C# 或 (a Mod b) 在 Visual Basic 中。 140 141 ModuloAssign 142 算术余数复合赋值运算,如 (a %= b) C# 中。 143 144 Multiply 145 乘法运算,如 (a * b), ,不进行溢出检查,针对数值操作数。 146 147 MultiplyAssign 148 乘法复合赋值运算,如 (a *= b), ,不进行溢出检查,针对数值操作数。 149 150 MultiplyAssignChecked 151 乘法复合赋值运算,如 (a *= b), ,,进行溢出检查,针对数值操作数。 152 153 MultiplyChecked 154 乘法运算,如 (a * b), ,,进行溢出检查,针对数值操作数。 155 156 Negate 157 算术求反运算,如 (-a)。 该对象 a 不应就地修改。 158 159 NegateChecked 160 算术求反运算,如 (-a), ,,进行溢出检查。 该对象 a 不应就地修改。 161 162 New 163 调用构造函数以创建新的对象,如操作 new SampleType()。 164 165 NewArrayBounds 166 创建一个新数组,其中每个维度的下限指定,如操作 new SampleType[dim1, dim2] 在 C# 或 New SampleType(dim1, dim2) 在 Visual Basic 中。 167 168 NewArrayInit 169 操作,创建一个新的一维数组并对其进行初始化从列表中的元素,如 new SampleType[]{a, b, c} 在 C# 或New SampleType(){a, b, c} 在 Visual Basic 中。 170 171 Not 172 按位求补或逻辑求反运算。 在 C# 中,则等同于 (~a) 整型和 (!a) 布尔值。 在 Visual Basic 中,则等同于 (Not a)。 该对象 a 不应就地修改。 173 174 NotEqual 175 不相等比较,如 (a != b) 在 C# 或 (a <> b) 在 Visual Basic 中。 176 177 OnesComplement 178 一个二进制反码运算,如 (~a) C# 中。 179 180 Or 181 按位或逻辑 OR 操作,如 (a | b) 在 C# 或 (a Or b) 在 Visual Basic 中。 182 183 OrAssign 184 按位或逻辑 OR 复合赋值运算,如 (a |= b) C# 中。 185 186 OrElse 187 短路条件 OR 操作,如 (a || b) 在 C# 或 (a OrElse b) 在 Visual Basic 中。 188 189 Parameter 190 对参数或变量的表达式的上下文中定义的引用。 有关更多信息,请参见ParameterExpression。 191 192 PostDecrementAssign 193 一元后缀递减,如 (a--)。 该对象 a 应就地修改。 194 195 PostIncrementAssign 196 一元后缀递增,如 (a++)。 该对象 a 应就地修改。 197 198 Power 199 如引发数字进行幂运算的数学运算 (a ^ b) 在 Visual Basic 中。 200 201 PowerAssign 202 如引发数字进行幂运算的复合赋值运算 (a ^= b) 在 Visual Basic 中。 203 204 PreDecrementAssign 205 一元前缀递减,如 (--a)。 该对象 a 应就地修改。 206 207 PreIncrementAssign 208 一元前缀递增,如 (++a)。 该对象 a 应就地修改。 209 210 Quote 211 具有类型的常量值的表达式 Expression。 一个 Quote 节点可以包含对它所代表的表达式的上下文中定义的参数的引用。 212 213 RightShift 214 按位右移运算,如 (a >> b)。 215 216 RightShiftAssign 217 按位右移复合赋值运算,如 (a >>= b)。 218 219 RuntimeVariables 220 运行时变量的列表。 有关详细信息,请参阅RuntimeVariablesExpression。 221 222 Subtract 223 减法运算,如 (a - b), ,不进行溢出检查,针对数值操作数。 224 225 SubtractAssign 226 减法复合赋值运算,如 (a -= b), ,不进行溢出检查,针对数值操作数。 227 228 SubtractAssignChecked 229 减法复合赋值运算,如 (a -= b), ,,进行溢出检查,针对数值操作数。 230 231 SubtractChecked 232 算术减法运算,如 (a - b), ,,进行溢出检查,针对数值操作数。 233 234 Switch 235 一个切换操作,如 switch 在 C# 或 Select Case 在 Visual Basic 中。 236 237 Throw 238 引发异常,如操作 throw new Exception()。 239 240 Try 241 一个 try-catch 表达式。 242 243 TypeAs 244 显式引用或装箱转换在其中 null 如果转换失败,如提供 (obj as SampleType) 在 C# 或 TryCast(obj, SampleType) 在 Visual Basic 中。 245 246 TypeEqual 247 确切类型测试。 248 249 TypeIs 250 一种类型测试,如 obj is SampleType 在 C# 或 TypeOf obj is SampleType 在 Visual Basic 中。 251 252 UnaryPlus 253 一元正运算,如 (+a)。 预定义的一元正运算的结果是操作数的值,但用户定义的实现可能有不寻常的结果。 254 255 Unbox 256 取消装箱值类型的操作,如 unbox 和 unbox.any MSIL 中的说明。 257 258 二、Expression分类与操作运算符 259 Expression 操作说明 260 BinaryExpression 表示具有二进制运算符的表达式 261 UnaryExpression 表示具有一元运算符的表达式 262 BlockExpression 表示包含一个表达式序列的块,表达式中可定义变量 263 ConditionalExpression 表示具有条件运算符的表达式 264 ConstantExpression 表示具有常数值的表达式 265 DefaultExpression 表示一个类型或空表达式的默认值 266 DynamicExpression 表示一个动态操作 267 GotoExpression 表示无条件跳转。 这包括返回语句,break 和 continue 语句以及其他跳转。 268 IndexExpression 表示对一个属性或数组进行索引 269 InvocationExpression 表示一个将委托或 lambda 表达式应用到一个自变量表达式列表的表达式 270 LabelExpression 表示一个标签,可以放置在任何 Expression 上下文。 如果它跳转到,它会提供相应的值 GotoExpression。 否则,它接收中的值 DefaultValue。 如果 Type 等于 System.Void,则应提供任何值 271 LambdaExpression 介绍 lambda 表达式。 它捕获一个类似于 .NET 方法主体的代码块 272 ListInitExpression 表示具有集合初始值设定项的构造函数调用 273 LoopExpression 表示无限循环。 可通过“中断”退出该循环 274 MemberExpression 表示访问字段或属性 275 MemberInitExpression 表示调用构造函数并初始化新对象的一个或多个成员 276 MethodCallExpression 表示对静态方法或实例方法的调用 277 NewArrayExpression 表示创建一个新数组,并可能初始化该新数组的元素 278 NewExpression 表示一个构造函数调用 279 ParameterExpression 表示一个命名的参数表达式 280 SwitchExpression 表示通过将控制权传递给处理多个选择的控件表达式 SwitchCase 281 TryExpression 表示一个 try/catch/finally/fault 块 282 TypeBinaryExpression 表示表达式和类型之间的操作 283 三、Expression的操作方法 284 名称 说明 285 Accept(ExpressionVisitor) 286 调度到此节点类型的特定 Visit 方法。 例如,MethodCallExpression 调用 VisitMethodCall。 287 288 Add(Expression, Expression) 289 创建一个表示不进行溢出检查的算术加法运算的 BinaryExpression。 290 291 Add(Expression, Expression, MethodInfo) 292 创建一个表示不进行溢出检查的算术加法运算的 BinaryExpression。 可指定实现方法。 293 294 AddAssign(Expression, Expression) 295 创建一个表示不进行溢出检查的加法赋值运算的 BinaryExpression。 296 297 AddAssign(Expression, Expression, MethodInfo) 298 创建一个表示不进行溢出检查的加法赋值运算的 BinaryExpression。 299 300 AddAssign(Expression, Expression, MethodInfo, LambdaExpression) 301 创建一个表示不进行溢出检查的加法赋值运算的 BinaryExpression。 302 303 AddAssignChecked(Expression, Expression) 304 创建一个表示进行溢出检查的加法赋值运算的 BinaryExpression。 305 306 AddAssignChecked(Expression, Expression, MethodInfo) 307 创建一个表示进行溢出检查的加法赋值运算的 BinaryExpression。 308 309 AddAssignChecked(Expression, Expression, MethodInfo, LambdaExpression) 310 创建一个表示进行溢出检查的加法赋值运算的 BinaryExpression。 311 312 AddChecked(Expression, Expression) 313 创建一个表示进行溢出检查的算术加法运算的 BinaryExpression。 314 315 AddChecked(Expression, Expression, MethodInfo) 316 创建一个表示进行溢出检查的算术加法运算的 BinaryExpression。 可指定实现方法。 317 318 And(Expression, Expression) 319 创建一个表示按位 BinaryExpression 运算的 AND。 320 321 And(Expression, Expression, MethodInfo) 322 创建一个表示按位 BinaryExpression 运算的 AND。 可指定实现方法。 323 324 AndAlso(Expression, Expression) 325 创建一个 BinaryExpression,它表示仅在第一个操作数的计算结果为 AND 时才计算第二个操作数的条件 true 运算。 326 327 AndAlso(Expression, Expression, MethodInfo) 328 创建一个 BinaryExpression,它表示仅在第一个操作数解析为 true 时,才计算第二个操作数的条件 AND 运算。 可指定实现方法。 329 330 AndAssign(Expression, Expression) 331 创建一个表示按位 AND 赋值运算的 BinaryExpression。 332 333 AndAssign(Expression, Expression, MethodInfo) 334 创建一个表示按位 AND 赋值运算的 BinaryExpression。 335 336 AndAssign(Expression, Expression, MethodInfo, LambdaExpression) 337 创建一个表示按位 AND 赋值运算的 BinaryExpression。 338 339 ArrayAccess(Expression, Expression[]) 340 创建一个用于访问数组的 IndexExpression。 341 342 ArrayAccess(Expression, IEnumerable<Expression>) 343 创建一个用于访问多维数组的 IndexExpression。 344 345 ArrayIndex(Expression, Expression) 346 创建一个 BinaryExpression,它表示将数组索引运算符应用到级别一的数组中。 347 348 ArrayIndex(Expression, Expression[]) 349 创建一个 MethodCallExpression,它表示将数组索引运算符应用到多维数组中。 350 351 ArrayIndex(Expression, IEnumerable<Expression>) 352 创建一个 MethodCallExpression,它表示将数组索引运算符应用到多个级别的数组中。 353 354 ArrayLength(Expression) 355 创建一个 UnaryExpression,它表示获取一维数组的长度的表达式。 356 357 Assign(Expression, Expression) 358 创建一个表示赋值运算的 BinaryExpression。 359 360 Bind(MemberInfo, Expression) 361 创建一个 MemberAssignment,它表示字段或属性的初始化。 362 363 Bind(MethodInfo, Expression) 364 使用属性访问器方法,创建一个表示成员初始化的 MemberAssignment。 365 366 Block(Expression, Expression) 367 创建一个 BlockExpression,其中包含两个表达式,但不包含任何变量。 368 369 Block(Expression, Expression, Expression) 370 创建一个 BlockExpression,其中包含三个表达式,但不包含任何变量。 371 372 Block(Expression, Expression, Expression, Expression) 373 创建一个 BlockExpression,其中包含四个表达式,但不包含任何变量。 374 375 Block(Expression, Expression, Expression, Expression, Expression) 376 创建一个 BlockExpression,其中包含五个表达式,但不包含任何变量。 377 378 Block(Expression[]) 379 创建一个 BlockExpression,其中包含给定表达式,但不包含任何变量。 380 381 Block(IEnumerable<Expression>) 382 创建一个 BlockExpression,其中包含给定表达式,但不包含任何变量。 383 384 Block(IEnumerable<ParameterExpression>, Expression[]) 385 创建一个 BlockExpression,其中包含给定的变量和表达式。 386 387 Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) 388 创建一个 BlockExpression,其中包含给定的变量和表达式。 389 390 Block(Type, Expression[]) 391 创建一个 BlockExpression,其中包含给定表达式和特定结果类型,但不包含任何变量。 392 393 Block(Type, IEnumerable<Expression>) 394 创建一个 BlockExpression,其中包含给定表达式和特定结果类型,但不包含任何变量。 395 396 Block(Type, IEnumerable<ParameterExpression>, Expression[]) 397 创建一个 BlockExpression,其中包含给定的变量和表达式。 398 399 Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>) 400 创建一个 BlockExpression,其中包含给定的变量和表达式。 401 402 Break(LabelTarget) 403 创建一个表示 break 语句的 GotoExpression。 404 405 Break(LabelTarget, Expression) 406 创建一个表示 break 语句的 GotoExpression。 可以指定在跳转时传递给标签的值。 407 408 Break(LabelTarget, Expression, Type) 409 创建一个表示具有指定类型的 break 语句的 GotoExpression。 可以指定在跳转时传递给标签的值。 410 411 Break(LabelTarget, Type) 412 创建一个表示具有指定类型的 break 语句的 GotoExpression。 413 414 Call(Expression, MethodInfo) 415 创建一个 MethodCallExpression,它表示调用不带参数的方法。 416 417 Call(Expression, MethodInfo, Expression, Expression) 418 创建一个 MethodCallExpression,它表示对采用两个参数的方法的调用。 419 420 Call(Expression, MethodInfo, Expression, Expression, Expression) 421 创建一个 MethodCallExpression,它表示对使用三个参数的方法的调用。 422 423 Call(Expression, MethodInfo, Expression[]) 424 创建一个表示调用带参数的方法的 MethodCallExpression。 425 426 Call(Expression, MethodInfo, IEnumerable<Expression>) 427 创建一个表示调用带参数的方法的 MethodCallExpression。 428 429 Call(Expression, String, Type[], Expression[]) 430 通过调用合适的工厂方法,创建一个 MethodCallExpression,它表示方法调用。 431 432 Call(MethodInfo, Expression) 433 创建一个 MethodCallExpression,它表示对使用一个参数的 static 方法(在 Visual Basic 中为 Shared 方法)的调用。 434 435 Call(MethodInfo, Expression, Expression) 436 创建一个 MethodCallExpression,它表示对使用两个参数的静态方法的调用。 437 438 Call(MethodInfo, Expression, Expression, Expression) 439 创建一个 MethodCallExpression,它表示对使用三个参数的静态方法的调用。 440 441 Call(MethodInfo, Expression, Expression, Expression, Expression) 442 创建一个 MethodCallExpression,它表示对使用四个参数的静态方法的调用。 443 444 Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) 445 创建一个 MethodCallExpression,它表示对使用五个参数的静态方法的调用。 446 447 Call(MethodInfo, Expression[]) 448 创建一个 MethodCallExpression,它表示调用有参数的 static(在 Visual Basic 中为 Shared)方法。 449 450 Call(MethodInfo, IEnumerable<Expression>) 451 创建一个 MethodCallExpression,它表示对 static 方法(在 Visual Basic 中为 Shared 方法)的调用。 452 453 Call(Type, String, Type[], Expression[]) 454 通过调用合适的工厂方法,创建一个 MethodCallExpression,它表示对 static(在 Visual Basic 中为 Shared)方法的调用。 455 456 Catch(ParameterExpression, Expression) 457 创建一个表示 catch 语句的 CatchBlock,其中具有对已捕获的 Exception 对象的引用以便在处理程序主体中使用。 458 459 Catch(ParameterExpression, Expression, Expression) 460 创建一个表示 catch 语句的 CatchBlock,其中具有 Exception 筛选器和对已捕获的 Exception 对象的引用。 461 462 Catch(Type, Expression) 463 创建一个表示 catch 语句的 CatchBlock。 464 465 Catch(Type, Expression, Expression) 466 创建一个表示 catch 语句的 CatchBlock,其中具有 Exception 筛选器,但没有对已捕获的 Exception 对象的引用。 467 468 ClearDebugInfo(SymbolDocumentInfo) 469 创建一个用于清除序列点的 DebugInfoExpression。 470 471 Coalesce(Expression, Expression) 472 创建一个表示合并运算的 BinaryExpression。 473 474 Coalesce(Expression, Expression, LambdaExpression) 475 在给定转换函数的情况下,创建一个表示合并运算的 BinaryExpression。 476 477 Condition(Expression, Expression, Expression) 478 创建一个表示条件语句的 ConditionalExpression。 479 480 Condition(Expression, Expression, Expression, Type) 481 创建一个表示条件语句的 ConditionalExpression。 482 483 Constant(Object) 484 创建一个 ConstantExpression,它把 Value 属性设置为指定值。 485 486 Constant(Object, Type) 487 创建一个 ConstantExpression,它把 Value 和 Type 属性设置为指定值。 488 489 Continue(LabelTarget) 490 创建一个表示 continue 语句的 GotoExpression。 491 492 Continue(LabelTarget, Type) 493 创建一个表示具有指定类型的 continue 语句的 GotoExpression。 494 495 Convert(Expression, Type) 496 创建一个表示类型转换运算的 UnaryExpression。 497 498 Convert(Expression, Type, MethodInfo) 499 创建一个 UnaryExpression,它表示为其指定实现方法的转换运算。 500 501 ConvertChecked(Expression, Type) 502 创建一个 UnaryExpression,它表示在目标类型发生溢出时引发异常的转换运算。 503 504 ConvertChecked(Expression, Type, MethodInfo) 505 创建一个 UnaryExpression,它表示在目标类型发生溢出时引发异常且为其指定实现方法的转换运算。 506 507 DebugInfo(SymbolDocumentInfo, Int32, Int32, Int32, Int32) 508 创建一个具有指定跨度的 DebugInfoExpression。 509 510 Decrement(Expression) 511 创建一个 UnaryExpression,它表示按 1 递减表达式值。 512 513 Decrement(Expression, MethodInfo) 514 创建一个 UnaryExpression,它表示按 1 递减表达式值。 515 516 Default(Type) 517 创建一个 DefaultExpression,Type 属性设置为指定类型。 518 519 Divide(Expression, Expression) 520 创建一个表示算术除法运算的 BinaryExpression。 521 522 Divide(Expression, Expression, MethodInfo) 523 创建一个表示算术除法运算的 BinaryExpression。 可指定实现方法。 524 525 DivideAssign(Expression, Expression) 526 创建一个表示不进行溢出检查的除法赋值运算的 BinaryExpression。 527 528 DivideAssign(Expression, Expression, MethodInfo) 529 创建一个表示不进行溢出检查的除法赋值运算的 BinaryExpression。 530 531 DivideAssign(Expression, Expression, MethodInfo, LambdaExpression) 532 创建一个表示不进行溢出检查的除法赋值运算的 BinaryExpression。 533 534 Dynamic(CallSiteBinder, Type, Expression) 535 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 绑定的动态操作。 536 537 Dynamic(CallSiteBinder, Type, Expression, Expression) 538 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 绑定的动态操作。 539 540 Dynamic(CallSiteBinder, Type, Expression, Expression, Expression) 541 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 绑定的动态操作。 542 543 Dynamic(CallSiteBinder, Type, Expression, Expression, Expression, Expression) 544 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 绑定的动态操作。 545 546 Dynamic(CallSiteBinder, Type, Expression[]) 547 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 绑定的动态操作。 548 549 Dynamic(CallSiteBinder, Type, IEnumerable<Expression>) 550 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 绑定的动态操作。 551 552 ElementInit(MethodInfo, Expression[]) 553 在给定值数组作为第二个参数的情况下,创建一个 ElementInit。 554 555 ElementInit(MethodInfo, IEnumerable<Expression>) 556 在给定 ElementInit 作为第二个参数的情况下,创建一个 IEnumerable<T>。 557 558 Empty() 559 创建具有 Void 类型的空表达式。 560 561 Equal(Expression, Expression) 562 创建一个表示相等比较的 BinaryExpression。 563 564 Equal(Expression, Expression, Boolean, MethodInfo) 565 创建一个表示相等比较的 BinaryExpression。 可指定实现方法。 566 567 Equals(Object) 568 确定指定的对象是否等于当前对象。(继承自 Object。) 569 570 ExclusiveOr(Expression, Expression) 571 通过对用户定义的类型使用 BinaryExpression,创建一个表示按位 XOR 运算的 op_ExclusiveOr。 572 573 ExclusiveOr(Expression, Expression, MethodInfo) 574 通过对用户定义的类型使用 BinaryExpression,创建一个表示按位 XOR 运算的 op_ExclusiveOr。 可指定实现方法。 575 576 ExclusiveOrAssign(Expression, Expression) 577 通过对用户定义的类型使用 BinaryExpression,创建一个表示按位 XOR 赋值运算的 op_ExclusiveOr。 578 579 ExclusiveOrAssign(Expression, Expression, MethodInfo) 580 通过对用户定义的类型使用 BinaryExpression,创建一个表示按位 XOR 赋值运算的 op_ExclusiveOr。 581 582 ExclusiveOrAssign(Expression, Expression, MethodInfo, LambdaExpression) 583 通过对用户定义的类型使用 BinaryExpression,创建一个表示按位 XOR 赋值运算的 op_ExclusiveOr。 584 585 Field(Expression, FieldInfo) 586 创建一个表示访问字段的 MemberExpression。 587 588 Field(Expression, String) 589 在给定字段名称的情况下,创建一个表示访问此字段的 MemberExpression。 590 591 Field(Expression, Type, String) 592 创建一个表示访问字段的 MemberExpression。 593 594 Finalize() 595 在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。(继承自 Object。) 596 597 GetActionType(Type[]) 598 创建一个 Type 对象,它表示具有特定类型参数的泛型 System.Action 委托类型。 599 600 GetDelegateType(Type[]) 601 获取一个 Type 对象,它表示具有特定类型参数的泛型 System.Func 或 System.Action 委托类型。 602 603 GetFuncType(Type[]) 604 创建一个 Type 对象,它表示具有特定类型参数的泛型 System.Func 委托类型。 最后一个类型参数指定已创建委托的返回类型。 605 606 GetHashCode() 607 作为默认哈希函数。(继承自 Object。) 608 609 GetType() 610 获取当前实例的 Type。(继承自 Object。) 611 612 Goto(LabelTarget) 613 创建一个表示“go to”语句的 GotoExpression。 614 615 Goto(LabelTarget, Expression) 616 创建一个表示“go to”语句的 GotoExpression。 可以指定在跳转时传递给标签的值。 617 618 Goto(LabelTarget, Expression, Type) 619 创建一个表示具有指定类型的“go to”语句的 GotoExpression。 可以指定在跳转时传递给标签的值。 620 621 Goto(LabelTarget, Type) 622 创建一个表示具有指定类型的“go to”语句的 GotoExpression。 623 624 GreaterThan(Expression, Expression) 625 创建一个表示“大于”数值比较的 BinaryExpression。 626 627 GreaterThan(Expression, Expression, Boolean, MethodInfo) 628 创建一个表示“大于”数值比较的 BinaryExpression。 可指定实现方法。 629 630 GreaterThanOrEqual(Expression, Expression) 631 创建一个表示“大于或等于”数值比较的 BinaryExpression。 632 633 GreaterThanOrEqual(Expression, Expression, Boolean, MethodInfo) 634 创建一个表示“大于或等于”数值比较的 BinaryExpression。 635 636 IfThen(Expression, Expression) 637 创建一个 ConditionalExpression,它表示带 if 语句的条件块。 638 639 IfThenElse(Expression, Expression, Expression) 640 创建一个 ConditionalExpression,它表示带 if 和 else 语句的条件块。 641 642 Increment(Expression) 643 创建一个 UnaryExpression,它表示按 1 递增表达式值。 644 645 Increment(Expression, MethodInfo) 646 创建一个 UnaryExpression,它表示按 1 递增表达式值。 647 648 Invoke(Expression, Expression[]) 649 创建一个 InvocationExpression,它将委托或 lambda 表达式应用于一个参数表达式列表。 650 651 Invoke(Expression, IEnumerable<Expression>) 652 创建一个 InvocationExpression,它将委托或 lambda 表达式应用于一个参数表达式列表。 653 654 IsFalse(Expression) 655 返回表达式的计算结果是否为 false。 656 657 IsFalse(Expression, MethodInfo) 658 返回表达式的计算结果是否为 false。 659 660 IsTrue(Expression) 661 返回表达式的计算结果是否为 true。 662 663 IsTrue(Expression, MethodInfo) 664 返回表达式的计算结果是否为 true。 665 666 Label() 667 创建一个 LabelTarget,它表示具有 void 类型但没有名称的标签。 668 669 Label(LabelTarget) 670 创建一个LabelExpression,它表示不带默认值的标签。 671 672 Label(LabelTarget, Expression) 673 创建一个 LabelExpression,它表示具有给定默认值的标签。 674 675 Label(String) 676 创建一个 LabelTarget,它表示具有 void 类型和给定名称的标签。 677 678 Label(Type) 679 创建一个 LabelTarget,它表示具有给定类型的标签。 680 681 Label(Type, String) 682 创建一个 LabelTarget,它表示具有给定类型和名称的标签。 683 684 Lambda(Expression, Boolean, IEnumerable<ParameterExpression>) 685 通过先构造一个委托类型来创建一个 LambdaExpression。 686 687 Lambda(Expression, Boolean, ParameterExpression[]) 688 通过先构造一个委托类型来创建一个 LambdaExpression。 689 690 Lambda(Expression, IEnumerable<ParameterExpression>) 691 通过先构造一个委托类型来创建一个 LambdaExpression。 692 693 Lambda(Expression, ParameterExpression[]) 694 通过先构造一个委托类型来创建一个 LambdaExpression。 695 696 Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>) 697 通过先构造一个委托类型来创建一个 LambdaExpression。 698 699 Lambda(Expression, String, IEnumerable<ParameterExpression>) 700 通过先构造一个委托类型来创建一个 LambdaExpression。 701 702 Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>) 703 通过先构造一个委托类型来创建一个 LambdaExpression。 704 705 Lambda(Type, Expression, Boolean, ParameterExpression[]) 706 通过先构造一个委托类型来创建一个 LambdaExpression。 707 708 Lambda(Type, Expression, IEnumerable<ParameterExpression>) 709 通过先构造一个委托类型来创建一个 LambdaExpression。 如果委托类型在编译时未知,则可以使用它。 710 711 Lambda(Type, Expression, ParameterExpression[]) 712 通过先构造一个委托类型来创建一个 LambdaExpression。 如果委托类型在编译时未知,则可以使用它。 713 714 Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>) 715 通过先构造一个委托类型来创建一个 LambdaExpression。 716 717 Lambda(Type, Expression, String, IEnumerable<ParameterExpression>) 718 通过先构造一个委托类型来创建一个 LambdaExpression。 719 720 Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>) 721 创建一个在编译时委托类型已知的 Expression<TDelegate>。 722 723 Lambda<TDelegate>(Expression, Boolean, ParameterExpression[]) 724 创建一个在编译时委托类型已知的 Expression<TDelegate>。 725 726 Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>) 727 创建一个在编译时委托类型已知的 Expression<TDelegate>。 728 729 Lambda<TDelegate>(Expression, ParameterExpression[]) 730 创建一个在编译时委托类型已知的 Expression<TDelegate>。 731 732 Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>) 733 创建一个在编译时委托类型已知的 Expression<TDelegate>。 734 735 Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>) 736 创建一个在编译时委托类型已知的 Expression<TDelegate>。 737 738 LeftShift(Expression, Expression) 739 创建一个表示按位左移运算的 BinaryExpression。 740 741 LeftShift(Expression, Expression, MethodInfo) 742 创建一个表示按位左移运算的 BinaryExpression。 743 744 LeftShiftAssign(Expression, Expression) 745 创建一个表示按位左移赋值运算的 BinaryExpression。 746 747 LeftShiftAssign(Expression, Expression, MethodInfo) 748 创建一个表示按位左移赋值运算的 BinaryExpression。 749 750 LeftShiftAssign(Expression, Expression, MethodInfo, LambdaExpression) 751 创建一个表示按位左移赋值运算的 BinaryExpression。 752 753 LessThan(Expression, Expression) 754 创建一个表示“小于”数值比较的 BinaryExpression。 755 756 LessThan(Expression, Expression, Boolean, MethodInfo) 757 创建一个表示“小于”数值比较的 BinaryExpression。 758 759 LessThanOrEqual(Expression, Expression) 760 创建一个表示“小于或等于”数值比较的 BinaryExpression。 761 762 LessThanOrEqual(Expression, Expression, Boolean, MethodInfo) 763 创建一个表示“小于或等于”数值比较的 BinaryExpression。 764 765 ListBind(MemberInfo, ElementInit[]) 766 创建一个其成员为字段或属性的 MemberListBinding。 767 768 ListBind(MemberInfo, IEnumerable<ElementInit>) 769 创建一个其成员为字段或属性的 MemberListBinding。 770 771 ListBind(MethodInfo, ElementInit[]) 772 基于指定的属性访问器方法创建一个 MemberListBinding 对象。 773 774 ListBind(MethodInfo, IEnumerable<ElementInit>) 775 基于指定的属性访问器方法创建一个 MemberListBinding。 776 777 ListInit(NewExpression, ElementInit[]) 778 创建一个使用指定 ListInitExpression 对象来初始化集合的 ElementInit。 779 780 ListInit(NewExpression, Expression[]) 781 创建一个使用名为“Add”的方法将元素添加到集合中的ListInitExpression。 782 783 ListInit(NewExpression, IEnumerable<ElementInit>) 784 创建一个使用指定 ListInitExpression 对象来初始化集合的 ElementInit。 785 786 ListInit(NewExpression, IEnumerable<Expression>) 787 创建一个使用名为“Add”的方法将元素添加到集合中的 ListInitExpression。 788 789 ListInit(NewExpression, MethodInfo, Expression[]) 790 创建一个使用指定方法将元素添加到集合中的 ListInitExpression。 791 792 ListInit(NewExpression, MethodInfo, IEnumerable<Expression>) 793 创建一个使用指定方法将元素添加到集合中的 ListInitExpression。 794 795 Loop(Expression) 796 创建具有给定主体的 LoopExpression。 797 798 Loop(Expression, LabelTarget) 799 创建具有给定主体和中断目标的 LoopExpression。 800 801 Loop(Expression, LabelTarget, LabelTarget) 802 创建具有给定主体的 LoopExpression。 803 804 MakeBinary(ExpressionType, Expression, Expression) 805 在给定左操作数和右操作数的情况下,通过调用适当的工厂方法来创建一个 BinaryExpression。 806 807 MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo) 808 在给定左操作数、右操作数和实现方法的情况下,通过调用适当的工厂方法来创建一个 BinaryExpression。 809 810 MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo, LambdaExpression) 811 在给定左操作数、右操作数、实现方法和类型转换函数的情况下,通过调用适当的工厂方法来创建一个 BinaryExpression。 812 813 MakeCatchBlock(Type, ParameterExpression, Expression, Expression) 814 创建一个表示具有指定元素的 catch 语句的 CatchBlock。 815 816 MakeDynamic(Type, CallSiteBinder, Expression) 817 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 和一个参数绑定的动态操作。 818 819 MakeDynamic(Type, CallSiteBinder, Expression, Expression) 820 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 和两个参数绑定的动态操作。 821 822 MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression) 823 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 和三个参数绑定的动态操作。 824 825 MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression, Expression) 826 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 和四个参数绑定的动态操作。 827 828 MakeDynamic(Type, CallSiteBinder, Expression[]) 829 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 绑定的动态操作。 830 831 MakeDynamic(Type, CallSiteBinder, IEnumerable<Expression>) 832 创建一个 DynamicExpression,它表示由提供的 CallSiteBinder 绑定的动态操作。 833 834 MakeGoto(GotoExpressionKind, LabelTarget, Expression, Type) 835 创建一个 GotoExpression,它表示指定的 GotoExpressionKind 的跳转。 也可以指定在跳转时传递给标签的值。 836 837 MakeIndex(Expression, PropertyInfo, IEnumerable<Expression>) 838 创建一个 IndexExpression,它表示访问对象中的索引属性。 839 840 MakeMemberAccess(Expression, MemberInfo) 841 创建一个表示访问字段或属性的 MemberExpression。 842 843 MakeTry(Type, Expression, Expression, Expression, IEnumerable<CatchBlock>) 844 创建一个表示具有指定元素的 try 块的 TryExpression。 845 846 MakeUnary(ExpressionType, Expression, Type) 847 在给定操作数的情况下,通过调用适当的工厂方法来创建一个 UnaryExpression。 848 849 MakeUnary(ExpressionType, Expression, Type, MethodInfo) 850 在给定操作数和实现方法的情况下,通过调用适当的工厂方法来创建一个 UnaryExpression。 851 852 MemberBind(MemberInfo, IEnumerable<MemberBinding>) 853 创建一个表示递归初始化某个字段或属性的成员的 MemberMemberBinding。 854 855 MemberBind(MemberInfo, MemberBinding[]) 856 创建一个表示递归初始化某个字段或属性的成员的 MemberMemberBinding。 857 858 MemberBind(MethodInfo, IEnumerable<MemberBinding>) 859 使用属性访问器方法创建一个表示对所访问的成员的成员进行递归初始化的 MemberMemberBinding。 860 861 MemberBind(MethodInfo, MemberBinding[]) 862 使用属性访问器方法创建一个表示对所访问的成员的成员进行递归初始化的 MemberMemberBinding。 863 864 MemberInit(NewExpression, IEnumerable<MemberBinding>) 865 表示一个表达式,该表达式创建新对象并初始化该对象的一个属性。 866 867 MemberInit(NewExpression, MemberBinding[]) 868 创建一个 MemberInitExpression。 869 870 MemberwiseClone() 871 创建当前 Object 的浅表副本。(继承自 Object。) 872 873 Modulo(Expression, Expression) 874 创建一个表示算术余数运算的 BinaryExpression。 875 876 Modulo(Expression, Expression, MethodInfo) 877 创建一个表示算术余数运算的 BinaryExpression。 878 879 ModuloAssign(Expression, Expression) 880 创建一个表示余数赋值运算的 BinaryExpression。 881 882 ModuloAssign(Expression, Expression, MethodInfo) 883 创建一个表示余数赋值运算的 BinaryExpression。 884 885 ModuloAssign(Expression, Expression, MethodInfo, LambdaExpression) 886 创建一个表示余数赋值运算的 BinaryExpression。 887 888 Multiply(Expression, Expression) 889 创建一个表示不进行溢出检查的算术乘法运算的 BinaryExpression。 890 891 Multiply(Expression, Expression, MethodInfo) 892 创建一个表示不进行溢出检查的算术乘法运算的 BinaryExpression。 893 894 MultiplyAssign(Expression, Expression) 895 创建一个表示不进行溢出检查的乘法赋值运算的 BinaryExpression。 896 897 MultiplyAssign(Expression, Expression, MethodInfo) 898 创建一个表示不进行溢出检查的乘法赋值运算的 BinaryExpression。 899 900 MultiplyAssign(Expression, Expression, MethodInfo, LambdaExpression) 901 创建一个表示不进行溢出检查的乘法赋值运算的 BinaryExpression。 902 903 MultiplyAssignChecked(Expression, Expression) 904 创建一个表示进行溢出检查的乘法赋值运算的 BinaryExpression。 905 906 MultiplyAssignChecked(Expression, Expression, MethodInfo) 907 创建一个表示进行溢出检查的乘法赋值运算的 BinaryExpression。 908 909 MultiplyAssignChecked(Expression, Expression, MethodInfo, LambdaExpression) 910 创建一个表示进行溢出检查的乘法赋值运算的 BinaryExpression。 911 912 MultiplyChecked(Expression, Expression) 913 创建一个表示进行溢出检查的算术乘法运算的 BinaryExpression。 914 915 MultiplyChecked(Expression, Expression, MethodInfo) 916 创建一个表示进行溢出检查的算术乘法运算的 BinaryExpression。 917 918 Negate(Expression) 919 创建一个表示算术求反运算的 UnaryExpression。 920 921 Negate(Expression, MethodInfo) 922 创建一个表示算术求反运算的 UnaryExpression。 923 924 NegateChecked(Expression) 925 创建一个表示进行溢出检查的算术求反运算的 UnaryExpression。 926 927 NegateChecked(Expression, MethodInfo) 928 创建一个表示进行溢出检查的算术求反运算的 UnaryExpression。 可指定实现方法。 929 930 New(ConstructorInfo) 931 创建一个表示调用不带参数的指定构造函数的 NewExpression。 932 933 New(ConstructorInfo, Expression[]) 934 创建一个表示调用带指定参数的指定构造函数的 NewExpression。 935 936 New(ConstructorInfo, IEnumerable<Expression>) 937 创建一个表示调用带指定参数的指定构造函数的 NewExpression。 938 939 New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>) 940 创建一个表示调用带指定参数的指定构造函数的 NewExpression。 其中指定了访问构造函数初始化的字段的成员。 941 942 New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[]) 943 创建一个表示调用带指定参数的指定构造函数的 NewExpression。 将访问构造函数初始化字段的成员指定为数组。 944 945 New(Type) 946 创建一个表示调用指定类型的无参数构造函数的 NewExpression。 947 948 NewArrayBounds(Type, Expression[]) 949 创建一个表示创建具有指定秩的数组的 NewArrayExpression。 950 951 NewArrayBounds(Type, IEnumerable<Expression>) 952 创建一个表示创建具有指定秩的数组的 NewArrayExpression。 953 954 NewArrayInit(Type, Expression[]) 955 创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression。 956 957 NewArrayInit(Type, IEnumerable<Expression>) 958 创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression。 959 960 Not(Expression) 961 创建一个表示按位求补运算的 UnaryExpression。 962 963 Not(Expression, MethodInfo) 964 创建一个表示按位求补运算的 UnaryExpression。 可指定实现方法。 965 966 NotEqual(Expression, Expression) 967 创建一个表示不相等比较的 BinaryExpression。 968 969 NotEqual(Expression, Expression, Boolean, MethodInfo) 970 创建一个表示不相等比较的 BinaryExpression。 971 972 OnesComplement(Expression) 973 返回表示一的补数的表达式。 974 975 OnesComplement(Expression, MethodInfo) 976 返回表示一的补数的表达式。 977 978 Or(Expression, Expression) 979 创建一个表示按位 BinaryExpression 运算的 OR。 980 981 Or(Expression, Expression, MethodInfo) 982 创建一个表示按位 BinaryExpression 运算的 OR。 983 984 OrAssign(Expression, Expression) 985 创建一个表示按位 OR 赋值运算的 BinaryExpression。 986 987 OrAssign(Expression, Expression, MethodInfo) 988 创建一个表示按位 OR 赋值运算的 BinaryExpression。 989 990 OrAssign(Expression, Expression, MethodInfo, LambdaExpression) 991 创建一个表示按位 OR 赋值运算的 BinaryExpression。 992 993 OrElse(Expression, Expression) 994 创建一个 BinaryExpression,它表示仅在第一个操作数的计算结果为 OR 时才计算第二个操作数的条件 false 运算。 995 996 OrElse(Expression, Expression, MethodInfo) 997 创建一个 BinaryExpression,它表示仅在第一个操作数的计算结果为 OR 时才计算第二个操作数的条件 false 运算。 998 999 Parameter(Type) 1000 创建一个 ParameterExpression 节点,该节点可用于标识表达式树中的参数或变量。 1001 1002 Parameter(Type, String) 1003 创建一个 ParameterExpression 节点,该节点可用于标识表达式树中的参数或变量。 1004 1005 PostDecrementAssign(Expression) 1006 创建一个 UnaryExpression,它表示将原始表达式递减 1 之后再进行表达式赋值。 1007 1008 PostDecrementAssign(Expression, MethodInfo) 1009 创建一个 UnaryExpression,它表示将原始表达式递减 1 之后再进行表达式赋值。 1010 1011 PostIncrementAssign(Expression) 1012 创建一个 UnaryExpression,它表示将原始表达式递增 1 之后再进行表达式赋值。 1013 1014 PostIncrementAssign(Expression, MethodInfo) 1015 创建一个 UnaryExpression,它表示将原始表达式递增 1 之后再进行表达式赋值。 1016 1017 Power(Expression, Expression) 1018 创建一个表示对数进行幂运算的 BinaryExpression。 1019 1020 Power(Expression, Expression, MethodInfo) 1021 创建一个表示对数进行幂运算的 BinaryExpression。 1022 1023 PowerAssign(Expression, Expression) 1024 创建一个 BinaryExpression,它表示对表达式求幂并将结果赋回给表达式。 1025 1026 PowerAssign(Expression, Expression, MethodInfo) 1027 创建一个 BinaryExpression,它表示对表达式求幂并将结果赋回给表达式。 1028 1029 PowerAssign(Expression, Expression, MethodInfo, LambdaExpression) 1030 创建一个 BinaryExpression,它表示对表达式求幂并将结果赋回给表达式。 1031 1032 PreDecrementAssign(Expression) 1033 创建一个 UnaryExpression,它将表达式递减 1 并将结果赋回给表达式。 1034 1035 PreDecrementAssign(Expression, MethodInfo) 1036 创建一个 UnaryExpression,它将表达式递减 1 并将结果赋回给表达式。 1037 1038 PreIncrementAssign(Expression) 1039 创建一个 UnaryExpression,它将表达式递增 1 并将结果赋回给表达式。 1040 1041 PreIncrementAssign(Expression, MethodInfo) 1042 创建一个 UnaryExpression,它将表达式递增 1 并将结果赋回给表达式。 1043 1044 Property(Expression, MethodInfo) 1045 使用属性访问器方法创建一个表示访问属性的 MemberExpression。 1046 1047 Property(Expression, PropertyInfo) 1048 创建一个表示访问属性的 MemberExpression。 1049 1050 Property(Expression, PropertyInfo, Expression[]) 1051 创建一个 IndexExpression,它表示对索引属性的访问。 1052 1053 Property(Expression, PropertyInfo, IEnumerable<Expression>) 1054 创建一个 IndexExpression,它表示对索引属性的访问。 1055 1056 Property(Expression, String) 1057 创建一个表示访问属性的 MemberExpression。 1058 1059 Property(Expression, String, Expression[]) 1060 创建一个 IndexExpression,它表示对索引属性的访问。 1061 1062 Property(Expression, Type, String) 1063 创建一个访问属性的 MemberExpression。 1064 1065 PropertyOrField(Expression, String) 1066 创建一个表示访问属性或字段的 MemberExpression。 1067 1068 Quote(Expression) 1069 创建一个表示具有类型 UnaryExpression 的常量值的表达式的 Expression。 1070 1071 Reduce() 1072 将此节点简化为更简单的表达式。 如果 CanReduce 返回 true,则它应返回有效的表达式。 此方法可以返回本身必须简化的另一个节点。 1073 1074 ReduceAndCheck() 1075 将此节点简化为更简单的表达式。 如果 CanReduce 返回 true,则它应返回有效的表达式。 此方法可以返回本身必须简化的另一个节点。 1076 1077 ReduceExtensions() 1078 将表达式简化为已知节点类型(即非 Extension 节点)或仅在此类型为已知类型时返回表达式。 1079 1080 ReferenceEqual(Expression, Expression) 1081 创建一个表示引用相等比较的 BinaryExpression。 1082 1083 ReferenceNotEqual(Expression, Expression) 1084 创建一个表示引用不相等比较的 BinaryExpression。 1085 1086 Rethrow() 1087 创建一个 UnaryExpression,它表示重新引发异常。 1088 1089 Rethrow(Type) 1090 创建一个 UnaryExpression,它表示重新引发具有给定类型的异常。 1091 1092 Return(LabelTarget) 1093 创建一个表示 return 语句的 GotoExpression。 1094 1095 Return(LabelTarget, Expression) 1096 创建一个表示 return 语句的 GotoExpression。 可以指定在跳转时传递给标签的值。 1097 1098 Return(LabelTarget, Expression, Type) 1099 创建一个表示具有指定类型的 return 语句的 GotoExpression。 可以指定在跳转时传递给标签的值。 1100 1101 Return(LabelTarget, Type) 1102 创建一个表示具有指定类型的 return 语句的 GotoExpression。 1103 1104 RightShift(Expression, Expression) 1105 创建一个表示按位右移运算的 BinaryExpression。 1106 1107 RightShift(Expression, Expression, MethodInfo) 1108 创建一个表示按位右移运算的 BinaryExpression。 1109 1110 RightShiftAssign(Expression, Expression) 1111 创建一个表示按位右移赋值运算的 BinaryExpression。 1112 1113 RightShiftAssign(Expression, Expression, MethodInfo) 1114 创建一个表示按位右移赋值运算的 BinaryExpression。 1115 1116 RightShiftAssign(Expression, Expression, MethodInfo, LambdaExpression) 1117 创建一个表示按位右移赋值运算的 BinaryExpression。 1118 1119 RuntimeVariables(IEnumerable<ParameterExpression>) 1120 创建 RuntimeVariablesExpression 的实例。 1121 1122 RuntimeVariables(ParameterExpression[]) 1123 创建 RuntimeVariablesExpression 的实例。 1124 1125 Subtract(Expression, Expression) 1126 创建一个表示不进行溢出检查的算术减法运算的 BinaryExpression。 1127 1128 Subtract(Expression, Expression, MethodInfo) 1129 创建一个表示不进行溢出检查的算术减法运算的 BinaryExpression。 1130 1131 SubtractAssign(Expression, Expression) 1132 创建一个表示不进行溢出检查的减法赋值运算的 BinaryExpression。 1133 1134 SubtractAssign(Expression, Expression, MethodInfo) 1135 创建一个表示不进行溢出检查的减法赋值运算的 BinaryExpression。 1136 1137 SubtractAssign(Expression, Expression, MethodInfo, LambdaExpression) 1138 创建一个表示不进行溢出检查的减法赋值运算的 BinaryExpression。 1139 1140 SubtractAssignChecked(Expression, Expression) 1141 创建一个表示进行溢出检查的减法赋值运算的 BinaryExpression。 1142 1143 SubtractAssignChecked(Expression, Expression, MethodInfo) 1144 创建一个表示进行溢出检查的减法赋值运算的 BinaryExpression。 1145 1146 SubtractAssignChecked(Expression, Expression, MethodInfo, LambdaExpression) 1147 创建一个表示进行溢出检查的减法赋值运算的 BinaryExpression。 1148 1149 SubtractChecked(Expression, Expression) 1150 创建一个表示进行溢出检查的算术减法运算的 BinaryExpression。 1151 1152 SubtractChecked(Expression, Expression, MethodInfo) 1153 创建一个表示进行溢出检查的算术减法运算的 BinaryExpression。 1154 1155 Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>) 1156 创建一个表示具有默认分支的 SwitchExpression 语句的 switch。 1157 1158 Switch(Expression, Expression, MethodInfo, SwitchCase[]) 1159 创建一个表示具有默认分支的 SwitchExpression 语句的 switch。 1160 1161 Switch(Expression, Expression, SwitchCase[]) 1162 创建一个表示具有默认分支的 SwitchExpression 语句的 switch。 1163 1164 Switch(Expression, SwitchCase[]) 1165 创建一个表示不带默认分支的 SwitchExpression 语句的 switch。 1166 1167 Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>) 1168 创建一个表示具有默认分支的 SwitchExpression 语句的 switch。 1169 1170 Switch(Type, Expression, Expression, MethodInfo, SwitchCase[]) 1171 创建一个 SwitchExpression,它表示具有默认分支的 switch 语句。 1172 1173 SwitchCase(Expression, Expression[]) 1174 创建在 SwitchCase 中使用的 SwitchExpression。 1175 1176 SwitchCase(Expression, IEnumerable<Expression>) 1177 创建要在 SwitchCase 对象中使用的 SwitchExpression 对象。 1178 1179 SymbolDocument(String) 1180 创建 SymbolDocumentInfo 的实例。 1181 1182 SymbolDocument(String, Guid) 1183 创建 SymbolDocumentInfo 的实例。 1184 1185 SymbolDocument(String, Guid, Guid) 1186 创建 SymbolDocumentInfo 的实例。 1187 1188 SymbolDocument(String, Guid, Guid, Guid) 1189 创建 SymbolDocumentInfo 的实例。 1190 1191 Throw(Expression) 1192 创建一个 UnaryExpression,它表示引发异常。 1193 1194 Throw(Expression, Type) 1195 创建一个 UnaryExpression,它表示引发具有给定类型的异常。 1196 1197 ToString() 1198 返回 Expression 的的文本化表示形式。(覆盖 Object.ToString()。) 1199 1200 TryCatch(Expression, CatchBlock[]) 1201 创建一个表示 try 块的 TryExpression,该 try 块包含任意数量的 catch 语句,但不包含 fault 和 finally 块。 1202 1203 TryCatchFinally(Expression, Expression, CatchBlock[]) 1204 创建一个表示 try 块的 TryExpression,该 try 块包含任意数量的 catch 语句和一个 finally 块。 1205 1206 TryFault(Expression, Expression) 1207 创建一个表示 try 块的 TryExpression,该 try 块包含一个 fault 块,但不包含 catch 语句。 1208 1209 TryFinally(Expression, Expression) 1210 创建一个表示 try 块的 TryExpression,该 try 块包含一个 finally 块,但不包含 catch 语句。 1211 1212 TryGetActionType(Type[], Type) 1213 创建一个 Type 对象,它表示具有特定类型参数的泛型 System.Action 委托类型。 1214 1215 TryGetFuncType(Type[], Type) 1216 创建一个 Type 对象,它表示具有特定类型参数的泛型 System.Func 委托类型。 最后一个类型参数指定已创建委托的返回类型。 1217 1218 TypeAs(Expression, Type) 1219 创建一个表示显式引用或装箱转换的 UnaryExpression(如果转换失败,则提供 null)。 1220 1221 TypeEqual(Expression, Type) 1222 创建一个比较运行时类型标识的 TypeBinaryExpression。 1223 1224 TypeIs(Expression, Type) 1225 创建一个 TypeBinaryExpression。 1226 1227 UnaryPlus(Expression) 1228 创建一个表示一元正运算的 UnaryExpression。 1229 1230 UnaryPlus(Expression, MethodInfo) 1231 创建一个表示一元正运算的 UnaryExpression。 1232 1233 Unbox(Expression, Type) 1234 创建一个表示显式取消装箱的 UnaryExpression。 1235 1236 Variable(Type) 1237 创建一个 ParameterExpression 节点,该节点可用于标识表达式树中的参数或变量。 1238 1239 Variable(Type, String) 1240 创建一个 ParameterExpression 节点,该节点可用于标识表达式树中的参数或变量。 1241 1242 VisitChildren(ExpressionVisitor) 1243 简化节点,然后对简化的表达式调用访问者委托。 该方法在节点不可简化时引发异常。
标签:Type,运算,创建,C#,操作方法,BinaryExpression,MethodInfo,Expression 来源: https://www.cnblogs.com/AtTheMoment/p/15106898.html