常用的Expression调用形式
ConstantExpression exp1 = Expression.Constant();构建常量表达式(还可以加类型)
BinaryExpression exp12 = Expression.Add(exp1, exp2);构建二元加法表达式,参数为左右两个需要相加的常量表达式或者变量
ParameterExpression expA = Expression.Parameter(typeof(double), "a");构建参数
-------------------------------------------------------------
ParameterExpression expA = Expression.Parameter(typeof(double), "a"); //参数a
MethodCallExpression expCall = Expression.Call(null,
typeof(Math).GetMethod("Sin", BindingFlags.Static | BindingFlags.Public),
expA); //Math.Sin(a)构建方法调用表达式(表示一次方法调用)
---------------------------------------------------
LambdaExpression exp = Expression.Lambda(expCall, expA); //构建lambda表达式(由表达式体和参数构成这个表达式体表示为一个方法调用表达式)
--------------------------------------------------- Expression<Func<double, double>> exp = a => Math.Sin(a);构建强类型的表达式树(表达式树字面量)
----------------------------------------------------------
UnaryExpression negate= Expression.Negate(left);//构建一元-表达式如:-a
-----------------------------------------------------------------------
ConstantExpression strin= Expression.Constant("hello",typeof(string));
NewExpression negate = Expression.New(typeof(StringBuilder).GetConstructor(new Type[] { typeof(String) }), strin);
//构造new StringBuilder("hello")
-----------------------------------------------------------------------
ParameterExpression a = Expression.Parameter(typeof(int), "a");
ParameterExpression b= Expression.Parameter(typeof(int), "b");
ParameterExpression i= Expression.Parameter(typeof(int), "i");
BinaryExpression add = Expression.Add(a,b);
ConstantExpression s=Expression.Constant(); BinaryExpression substract = Expression.Subtract(i,s); NewArrayExpression arrayint= Expression.NewArrayInit(typeof(int), a, b, add);
IndexExpression arracc= Expression.ArrayAccess(arrayint, substract);
Console.WriteLine(arracc.ToString());
//new [] {a, b, (a + b)}[(i - 1)]数组访问
--------------------------------------------------------------------------
MemberExpression mem=Expression.Property(exppro, property)//创建类型的属性表达式
--------------------------------------
Expression.Equal(left, right)//二元=表达式
----------------------------------
Expression.GreaterThan(left, right)//二元>表达式
----------------------------------
Expression.GreaterThanOrEqual(left, right)//>=
-------------------------------
Expression.LessThan(left, right)//<
---------------------------------
Expression.LessThanOrEqual(left,right)/<=
--------------------------------------
return Expression.Call(left, typeof (string).GetMethod("Contains"), right)//like 字符串中包含right表达式代表的字符串
----------------------------------------------
MethodCallExpression resultExp =
Expression.Call(
typeof (Enumerable),
"Contains",
new[] {left.Type},
right,
left)
//构造in 比如: c=>new[] {"nn","mm"}.contains(c.name)
--------------------------------------------
Expression.NotEqual(left, right)//!=
-------------------------------------------
Expression.Call(left, typeof (string).GetMethod("StartsWith", new[] {typeof (string)}), right)//left以right字符串开始
------------------------------------
Expression.Call(left, typeof (string).GetMethod("EndsWith", new[] {typeof (string)}), right)//left以right字符串结尾
---------------------------------------
Expression.AndAlso(left, expression)//and 表达式&&
-----------------------------------------
Expression.OrElse(left, orGroupByExpAnd)//or表达式||
常用的Expression调用形式的更多相关文章
- LR常用函数以及调用自定义函数
2.LR常用函数以及调用自定义函数 2.1.LR常用函数以及对信息的判断 2.1.1. LR内部自定义函数 在LR脚本中定义变量和编写自定义函数,需将变量的声明放在脚本其他内容的上方,否则会提示[il ...
- JavaScript高级之函数的四种调用形式
主要内容 分析函数的四种调用形式 弄清楚函数中this的意义 明确构造函对象的过程 学会使用上下文调用函数 了解函数的调用过程有助于深入学习与分析JavaScript代码. 本文是JavaScript ...
- Swift2.0语言教程之函数嵌套调用形式
Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还能够调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其它函数:还 ...
- HDCMS常用的一些调用!
HDCMS常用的一些调用: 头部的标题/描述/关键词的调用: <title><?php if($hdcms['aid']):?><?php if($hdcms['seo_ ...
- python函数:函数使用原则、定义与调用形式
一.函数初始 二.函数的使用原则 三.函数的定义与调用形式 四.函数的返回值 五.函数参数的使用 一.函数初始 # 须知一: # 硬盘空间无法修改,硬盘中的数据更新都是用新的内容覆盖旧的内容 # 内存 ...
- 24、jQuery常用AJAX-API/Java调用MySQL / Oracle过程与函数
1)掌握jQuery常用AJAX-API 2)掌握Java调用MySQL / Oracle过程与函数 一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取 ...
- 生活常用类API调用的代码示例合集:邮编查询、今日热门新闻查询、区号查询等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 邮编查询:通过邮编查询地名:通过地名查询邮编 今日热门新闻查询:提 ...
- javascript this 代表的上下文,JavaScript 函数的四种调用形式
JavaScript 是一种脚本语言,支持函数式编程.闭包.基于原型的继承等高级功能.其中JavaScript 中的 this 关键字,就是一个比较容易混乱的概念,在不同的场景下,this会化身不同的 ...
- oracle常用函数以及调用入参为record的存储过程的方法,
转自:http://www.cnblogs.com/zhangronghua/archive/2007/08/20/862812.html SQL中的单记录函数1.ASCII返回与指定的字符对应的十进 ...
随机推荐
- HTTP协议状态码详解(HTTP Status Code)
转自:http://www.cnblogs.com/shanyou/archive/2012/05/06/2486134.html 使用ASP.NET/PHP/JSP 或者javascript都会用到 ...
- Hyper-V的使用方法
win8和win8.1以及win10自带虚拟机,无需再装第三方虚拟机软件. 首先需要在“启用或关闭windows功能”中,启用Hyper-V
- ubuntu 12.04 安装 redis
原文地址:http://ijonas.com/software-development/nosql/412/ 1 Installing Redis 2.6.x on Ubuntu 12.04 and ...
- JavaScript获取onclick、onchange等事件的值
今天小菜处理下拉菜单级联问题时,想获取HTML标签中某个事件的内容,也就是值,比如从<select id="city" onchange="javascript:t ...
- Ubuntu SVN客户端安装
查看系统版本: uname -a (Linux查看版本当前操作系统内核信息) cat /proc/version (Linux查看当前操作系统版本信息) 1.首先需要安装Ubuntu SVN.Ubun ...
- mobilebone.js使用笔记
mobilebone.js主要用来是网页呈现单页效果,添加类似native app的页面切换效果.原理是:当打开a链接里的页面时,不再以传统的新页面打开,而是以ajax-html的方式,将新页面的内容 ...
- Emmet语法预览
Emmet 是一个能提高前端开发效率的编辑器插件,支持 Sublime,Atom,TextMate,Nodepad++ 等主流编辑器.Emmet 定义了一些缩写,当我们输入缩写代码后,按展开键(默认是 ...
- Atitit.guice3 ioc 最佳实践 o9o
Atitit.guice3 ioc 最佳实践 o9o 1. Guice的优点and跟个spring的比较 1 2. 两个部分:::绑定and注入@Inject 1 3. 绑定所有的方法总结 2 3. ...
- paip.hql的调试故障排查流程总结
paip.hql的调试故障排查流程总结 环境.myeclipse7.0 1 Hql的调试工具myeclipxe默认工具.../Hibernate8IDE 1 故障的排除方法overview 1 Hql ...
- CentOS 6.5 无网环境安装R及Rstudio的方法的方法
在生产环节,一般是不联网的,下面介绍在无望环境如何安装R及R-studio 1. 安装CentOS for R语言的基础环境 1.1 libpng,X11,libjpeg等支持 yum -y ins ...