c#中有Expression,即表达式。

通过Expression可以动态构造代码,并编译执行。 
比如:
1. 
创建参数表达式 :ParameterExpression numParam = Expression.Parameter(typeof(int), "num");、
创建常量表达式:ConstantExpression five = Expression.Constant(5, typeof(int));
创建比较表达式:BinaryExpression numLessThanFive = Expression.LessThan(numParam, five);
创建标号:LabelTarget label = Expression.Label(typeof(int));
创建循环或者分支表达式:
  Expression.Loop(
// Adding a conditional block into the loop.
Expression.IfThenElse(
// Condition: value > 1
Expression.GreaterThan(value, Expression.Constant(1)),
// If true: result *= value --
Expression.MultiplyAssign(result,
Expression.PostDecrementAssign(value)),
// If false, exit the loop and go to the label.
Expression.Break(label, result)
),
// Label to jump to.
label
)
2.
创建表达式树:Expression<Func<int, bool>> exprTree = num => num < 5;
3.
分解表达式:ParameterExpression param = (ParameterExpression)exprTree.Parameters[0];
4.
编译表达式:Func<int, bool> result = expr.Compile();


最新文章

  1. wpf模仿QQ表情
  2. codeforces Soldier and Number Game(dp+素数筛选)
  3. page-cache层
  4. ubantu eclipe
  5. 白话LINQ系列2---以代码演进方式学习LINQ必备条件
  6. ASP代码审计 -4.命令执行漏洞总结
  7. 安装Tomcat服务器
  8. ural 1242. Werewolf
  9. Hdu4005-The war(双连通缩点)
  10. IDEA Tomcat:Failed to initialize end point associated with ProtocolHandler
  11. strcmp函数实现
  12. python类库numpy中常见函数的用法
  13. C语言编对双精度数保留一位小数
  14. oracle启动服务和监听
  15. vue打包app嵌入h5,区分app进入和android,ios显示不同的下载链接
  16. 将eclipse dynamic web project部署到指定的tomcat软件下的webapps文件夹中
  17. Math.max()/min()
  18. c/c++ 模板与STL小例子系列&lt;一 &gt;自建Array数组
  19. 【深度学习】一文读懂机器学习常用损失函数(Loss Function)
  20. [TJOI2012]桥(最短路+线段树)

热门文章

  1. 智能家居DIY-空气质量检测篇-获取空气污染指数
  2. What Every Computer Scientist Should Know About Floating-Point Arithmetic
  3. iOS线程浅析
  4. Unity 武器拖尾效果
  5. python cookbook第三版学习笔记十五:property和描述
  6. php添加或升级扩展模块步骤
  7. 通过socket和Udp协议简单实现一个群体聊天工具(控制台)
  8. 深入理解利用new创建对象的执行过程以Person p=new Person(&quot;张三&quot;,20);为例
  9. Oracle可能会遇到问题和解决方法
  10. 字节和unicode