注解

抽象类 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个枚举的更多相关文章

  1. 表达式树练习实践:C# 五类运算符的表达式树表达

    目录 表达式树练习实践:C# 运算符 一,算术运算符 + 与 Add() - 与 Subtract() 乘除.取模 自增自减 二,关系运算符 ==.!=.>.<.>=.<= 三 ...

  2. [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门

    [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树. 学习 ...

  3. 表达式树(Expression Tree)

    饮水思源 本文并非原创而是下面网址的一个学习笔记 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/e ...

  4. C#表达式树浅析

    一.前言 在我们日常开发中Lamba 表达式经常会使用,如List.Where(n=>Name="abc") 使用起来非常的方便,代码也很简洁,总之一个字就是“爽”.在之前我 ...

  5. 【C#表达式树 四】Expression类上的函数列表

    Expression相当于工厂,这个工厂有各式各样的模型(函数),用来生成各种零部件(节点类型),最后组装成表达式树. Expressions这个命名空间有各种个容器用陈放生产出来的零部件. Expr ...

  6. LinqToDB 源码分析——生成表达式树

    当我们知道了Linq查询要用到的数据库信息之后.接下就是生成对应的表达式树.在前面的章节里面笔者就已经介绍过.生成表达式树是事实离不开IQueryable<T>接口.而处理表达式树离不开I ...

  7. 再讲IQueryable<T>,揭开表达式树的神秘面纱

    接上篇<先说IEnumerable,我们每天用的foreach你真的懂它吗?> 最近园子里定制自己的orm那是一个风生水起,感觉不整个自己的orm都不好意思继续混博客园了(开个玩笑).那么 ...

  8. [C#] C# 知识回顾 - 表达式树 Expression Trees

    C# 知识回顾 - 表达式树 Expression Trees 目录 简介 Lambda 表达式创建表达式树 API 创建表达式树 解析表达式树 表达式树的永久性 编译表达式树 执行表达式树 修改表达 ...

  9. C# - LINQ 表达式树

    表达式树(Expression Tree) 表达式树是不可执行的代码,它只是用于表示一种树状的数据结构,树上的每一个节点都表示为某种表达式类型,大概有25种表达式类型,它们都派生自Expression ...

随机推荐

  1. FilterConfig接口(Servlet)

    Javax.Servet 包中提供了一个 FilterCofig 接口,它与 ServletConfig 接口相似,用于在过滤器初始化期间向其传递信息.FilterConfig 接口由容器实现,容器将 ...

  2. JQ的使用

    1.hello,word <script type="text/javascript" src="js/jquery-1.10.1.js">< ...

  3. 在Django中使用zerorpc

    在Django中使用zerorpc 前言 随着系统架构从集中式单点服务器到分布式微服务方向的迁移,RPC是一个不可回避的话题.如何在系统中引入对开发者友好,性能可靠的RPC服务是一个值得深思的问题. ...

  4. 一段关于java NIO server端接受客户端socket连接;演示了关于channel,selector等组件的整合使用

    public class ReactorDemo { public static void main(String[] args) throws IOException { ServerSocketC ...

  5. 集合框架-ArrayList练习(去除ArrayList集合中的重复元素)

    1 package cn.itcast.p3.arraylist.test; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; ...

  6. 6. java IO 流

    一.流的分类: * 1.操作数据单位:字节流.字符流 * 2.数据的流向:输入流.输出流 * 3.流的角色:节点流.处理流 *二.流的体系结构 * 抽象基类               节点流(或文件 ...

  7. 社交网络分析的 R 基础:(四)循环与并行

    前三章中列出的大多数示例代码都很短,并没有涉及到复杂的操作.从本章开始将会把前面介绍的数据结构组合起来,构成真正的程序.大部分程序是由条件语句和循环语句控制,R 语言中的条件语句(if-else)和 ...

  8. Spring Boot配置多个DataSource (转)

    使用Spring Boot时,默认情况下,配置DataSource非常容易.Spring Boot会自动为我们配置好一个DataSource. 如果在application.yml中指定了spring ...

  9. 入门-k8s部署应用 (三)

    Kubernetes 部署应用 在 k8s 上进行部署前,首先需要了解一个基本概念 Deployment Deployment 译名为 部署.在k8s中,通过发布 Deployment,可以创建应用程 ...

  10. UIView属性的讲解

    1.父控件和子控件的理解在storyboard中只有UIView是可以在里面拖入子控件的,其他控件不可以(必须通过代码添加)拖入一个UIView控件,在里面添加一些子控件(UIView控件是控制器的V ...