【C#表达式树 一】Expressions 命名空间 38个类 2个接口 3个枚举
注解
抽象类 Expression 提供用于为表达式树建模的类层次结构的根。
此命名空间中派生自的类 Expression (例如 MemberExpression 和 ParameterExpression )用于表示表达式树中的节点。 Expression类包含 static (Shared Visual Basic) 工厂方法来创建各种类型的表达式树节点。
枚举类型 ExpressionType 指定唯一的节点类型。
| Expressions 命名空间 38个类 2个接口 3个枚举 | ||
| 类型 | 类名 | 说明 |
| 类 | BinaryExpression | 表示具有二进制运算符的表达式。 |
| 类 | BlockExpression | 表示包含一个表达式序列的块,表达式中可定义变量。 |
| 类 | CatchBlock | 表示 try 块中的 catch 语句。 |
| 类 | ConditionalExpression | 表示具有条件运算符的表达式。 |
| 类 | ConstantExpression | 表示具有常数值的表达式。 |
| 类 | DebugInfoExpression | 发出或清除调试信息的序列点。 这使调试器能够在调试时突出显示正确的源代码。 |
| 类 | DefaultExpression | 表示一个类型或空表达式的默认值。 |
| 类 | DynamicExpression | 表示一个动态操作。 |
| 类 | DynamicExpressionVisitor | 表示动态表达式树的访问者或重写者。 |
| 类 | ElementInit | 表示 IEnumerable 集合的单个元素的初始值设定项。 |
| 类 | Expression | 提供一种基类,表示表达式树节点的类派生自该基类。 它还包含用来创建各种节点类型的 static(在 Visual Basic 中为 Shared)工厂方法。 这是一个 abstract 类。 |
| 类 | Expression<TDelegate> | 将强类型化的 Lambda 表达式表示为表达式树形式的数据结构。 此类不能被继承。 |
| 类 | ExpressionVisitor | 表示表达式树的访问者或重写者。 |
| 类 | GotoExpression | 表示无条件跳转。 这包括返回语句,break 和 continue 语句以及其他跳转。 |
| 类 | IndexExpression | 表示对一个属性或数组进行索引。 |
| 类 | InvocationExpression | 表示一个将委托或 Lambda 表达式应用到一个自变量表达式列表的表达式。 |
| 类 | LabelExpression | 表示一个标签,可以将该标签放置在任何 Expression 上下文中。 如果已跳转到该标签,则它将获取由对应的 GotoExpression 提供的值。 否则,它接收 DefaultValue 中的值。 如果 Type 等于 System.Void,则不应提供值。 |
| 类 | LabelTarget | 用于表示 GotoExpression 的目标。 |
| 类 | LambdaExpression | 介绍 lambda 表达式。 它捕获一个类似于 .NET 方法主体的代码块。 |
| 类 | ListInitExpression | 表示具有集合初始值设定项的构造函数调用。 |
| 类 | LoopExpression | 表示无限循环。 可通过“中断”退出该循环。 |
| 类 | MemberAssignment | 表示对象的字段或属性的赋值操作。 |
| 类 | MemberBinding | 提供表示绑定的类派生自的基类,这些绑定用于对新创建对象的成员进行初始化。 |
| 类 | MemberExpression | 表示访问字段或属性。 |
| 类 | MemberInitExpression | 表示调用构造函数并初始化新对象的一个或多个成员。 |
| 类 | MemberListBinding | 表示初始化新创建对象的一个集合成员的元素。 |
| 类 | MemberMemberBinding | 表示初始化新创建对象的一个成员的成员。 |
| 类 | MethodCallExpression | 表示对静态方法或实例方法的调用。 |
| 类 | NewArrayExpression | 表示创建一个新数组,并可能初始化该新数组的元素。 |
| 类 | NewExpression | 表示一个构造函数调用。 |
| 类 | ParameterExpression | 表示一个命名的参数表达式。 |
| 类 | RuntimeVariablesExpression | 一个为变量提供运行时读/写权限的表达式。 |
| 类 | SwitchCase | 表示 SwitchExpression 的一个事例。 |
| 类 | SwitchExpression | 表示一个控制表达式,该表达式通过将控制传递到 SwitchCase 来处理多重选择。 |
| 类 | SymbolDocumentInfo | 存储用于发出源文件调试符号信息所必要的信息,尤其是文件名和唯一的语言标识符。 |
| 类 | TryExpression | 表示一个 try/catch/finally/fault 块。 |
| 类 | TypeBinaryExpression | 表示表达式和类型之间的操作。 |
| 类 | UnaryExpression | 表示具有一元运算符的表达式。 |
| 接口 | IArgumentProvider | 提供用于访问多个树节点(DynamicExpression、ElementInit、MethodCallExpression、InvocationExpression、NewExpression 和 IndexExpression)的参数的内部接口。 此 API 仅供内部使用。 |
| 接口 | IDynamicExpression | 提供用于访问 DynamicExpression 树节点的参数及 CallSite 和重写功能的内部接口。 不应使用此 API。 由于 DLL 重构,它只能是公共的;并且仅用于内部性能优化。 |
| 枚举 | ExpressionType | 介绍表达式树节点的节点类型。 |
| 枚举 | GotoExpressionKind | 指定此 GotoExpression 表示的跳转种类。 |
| 枚举 | MemberBindingType | 描述 MemberInitExpression 对象中使用的绑定类型。 |
【C#表达式树 一】Expressions 命名空间 38个类 2个接口 3个枚举的更多相关文章
- 表达式树练习实践:C# 五类运算符的表达式树表达
目录 表达式树练习实践:C# 运算符 一,算术运算符 + 与 Add() - 与 Subtract() 乘除.取模 自增自减 二,关系运算符 ==.!=.>.<.>=.<= 三 ...
- [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门
[.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树. 学习 ...
- 表达式树(Expression Tree)
饮水思源 本文并非原创而是下面网址的一个学习笔记 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/e ...
- C#表达式树浅析
一.前言 在我们日常开发中Lamba 表达式经常会使用,如List.Where(n=>Name="abc") 使用起来非常的方便,代码也很简洁,总之一个字就是“爽”.在之前我 ...
- 【C#表达式树 四】Expression类上的函数列表
Expression相当于工厂,这个工厂有各式各样的模型(函数),用来生成各种零部件(节点类型),最后组装成表达式树. Expressions这个命名空间有各种个容器用陈放生产出来的零部件. Expr ...
- LinqToDB 源码分析——生成表达式树
当我们知道了Linq查询要用到的数据库信息之后.接下就是生成对应的表达式树.在前面的章节里面笔者就已经介绍过.生成表达式树是事实离不开IQueryable<T>接口.而处理表达式树离不开I ...
- 再讲IQueryable<T>,揭开表达式树的神秘面纱
接上篇<先说IEnumerable,我们每天用的foreach你真的懂它吗?> 最近园子里定制自己的orm那是一个风生水起,感觉不整个自己的orm都不好意思继续混博客园了(开个玩笑).那么 ...
- [C#] C# 知识回顾 - 表达式树 Expression Trees
C# 知识回顾 - 表达式树 Expression Trees 目录 简介 Lambda 表达式创建表达式树 API 创建表达式树 解析表达式树 表达式树的永久性 编译表达式树 执行表达式树 修改表达 ...
- C# - LINQ 表达式树
表达式树(Expression Tree) 表达式树是不可执行的代码,它只是用于表示一种树状的数据结构,树上的每一个节点都表示为某种表达式类型,大概有25种表达式类型,它们都派生自Expression ...
随机推荐
- P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
// Problem: P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two // Contest: Luogu // URL: https://www.luogu.com ...
- python中的rpc库
基于xml的rpc调用 rpcserver.py from xmlrpc.server import SimpleXMLRPCServer # python中类的命名方式遵循驼峰命名法 # 1. 没有 ...
- gorm中的高级查询
智能选择字段 GORM 允许通过 Select 方法选择特定的字段,如果您在应用程序中经常使用此功能,你也可以定义一个较小的结构体,以实现调用 API 时自动选择特定的字段,例如: type User ...
- golang中函数的可变参数
package main import "fmt" // 一个函数中最多只可有一个可变参数, 如果参数列表中还有其它类型的参数,则可变参数写在最后 // 注意:参数不定,参数的个数 ...
- limit概述
5.limit 5.1.limit是将查询结果集的一部分取出来,通常使用在分页查询中 分页作用是为了提高用户体验,可以一页一页翻页看 5.2.limit用法:(非常重要) 完整用法:limit sta ...
- HttpServletRequest类介绍
HttpServletRequest类介绍 1,HttpServletRequest类作用: 每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Req ...
- 了解promise、promise对象
Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象. 所谓Pr ...
- CSS之常见布局|常用单位|水平垂直居中
常见布局: 1. 流式布局:百分比布局,宽高.margin.pinding都是百分比 2. 固定布局:盒子的宽高固定,如:margin.padding等 3. 浮动布局:float 4. 弹性布局:f ...
- iBooker AI+财务提升星球 2020.4 热门讨论
比特币量化套利的心路历程(附python量化招聘)(分享自知- 如何选择一份好的工作? 你知道为什么大家都想去好公司吗? 不- #财务知识# 可转债套利 辉丰转债128012套利之三个知道- #财务知 ...
- Nginx网络压缩 CSS压缩 图片压缩 JSON压缩
一.序言 使用Nginx作为web应用服务时,会代理如下常见文件:js.css.JSON.图片等,本文提供基于Nginx内置的压缩技术,提供网络请求响应速度的解决方案. 1.网络压缩原理 网络压缩的原 ...