zoukankan      html  css  js  c++  java
  • Lambda创建表达式目录树

    一,如下代码:

    using System;
    using System.Linq.Expressions;
    
    namespace Demo
    {
        class Program
        {
            static void Main(string[] args)
            {
                Func<int, int, int> func = null;
                //两个参数
                ParameterExpression a = Expression.Parameter(typeof(int), "a");
                ParameterExpression b = Expression.Parameter(typeof(int), "b");
    
                //求积
                BinaryExpression cj = Expression.Multiply(a, b);
    
                //常量
                ConstantExpression Con2 = Expression.Constant(4);
    
                //求和
                BinaryExpression Add = Expression.Add(cj, Con2);
    
                //创建一个表示lambda表达式的对象
                Expression<Func<int, int, int>> lexp = Expression.Lambda<Func<int, int, int>>(cj, a, b);
                func = lexp.Compile();  //表达目录树生成委托
                //查看表达式
                Console.WriteLine(lexp.ToString());  //
                var ss = func.Invoke(1, 2);  //执行委托返回结果
                Console.WriteLine(ss);
    
    
                //创建一个表示lambda表达式的对象
                Expression<Func<int, int, int>> lexp1 = Expression.Lambda<Func<int, int, int>>(Add, a, b);
                func = lexp1.Compile();   //表达目录树生成委托
                //查看表达式
                Console.WriteLine(lexp1.ToString());
                var ss1 = func.Invoke(1, 2);   //执行委托返回结果
                Console.WriteLine(ss1);
    
                Console.ReadKey();
            }
        }
    }

    二,运行结果如下:

  • 相关阅读:
    LAPACK(5)——矩阵广义特征值问题和QZ分解
    数据结构与算法——堆
    STL(1)——查找函数find的使用
    数据结构与算法——多项式
    LAPACK(6)——总结
    设计模式代理模式
    C#防盗链
    设计模式组合模式
    JavascriptFolder对象
    JavascriptTextStream对象
  • 原文地址:https://www.cnblogs.com/May-day/p/10827381.html
Copyright © 2011-2022 走看看