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();
        }
    }
}

二,运行结果如下:

原文地址:https://www.cnblogs.com/May-day/p/10827381.html

时间: 2024-09-29 19:33:07

Lambda创建表达式目录树的相关文章

dnspy的详细配置,dnspy如何过滤反编译之后的乱码,dnspy如何反编译表达式目录树

dnSpy应该是目前使用最多的.net反编译工具.很多情况下反编译C#代码非常方便,特别是查找基类,子类.搜索一些class,方法.接口,非常方便.比ILspy好很多.而且dnspy是可以配置的. 如果要dnSpy非常干净地显示反编译之后的代码,可以看我具体的配置: 第一张是效果图,过滤一个具体的关键词筛选的时候可以使用[全词匹配],可以在所有的.net framework中查找你需要寻找的那个关键字,不区分大小写. 右侧底部的这个搜索框是可以配置的,而且有时候很容易被隐藏掉,需要"上拉&quo

.Net工具类--表达式目录树解析DataReader和DataTable

一.概述 在项目中经常会使用SQL去操作数据库,在读取数据的时候返回结果一般是DataReader和DataSet,其中DataaSet里面可以包含多个DataTable. 读取到数据之后,一般情况下,我们需要把DataReader和DataSet解析成另外的数据实体和数据集合,有人会选择反射.硬编码,这些都是解决方案, 其实还有其他的解决方案,那就是表达式目录树. 二.解析DataReader 这个是生成表达式的方法. /// <summary> /// SqlDataReader生成表达式

表达式目录树Expression

表达式目录树是用于动态的linq语句的拼装在以前遇到数据筛选的情况下我们日常的操作是 1 Console.WriteLine("输入Name 不写为空"); 2 var name = Console.ReadLine(); 3 Console.WriteLine("输入PassWord 不写为空"); 4 var PassWord = Console.ReadLine(); 5 string sql = "select * from Student whe

第十九节: 结合【表达式目录树】来封装EF的BaseDal层的方法

一. 简介 该章节,可以说是一个简单轻松的章节,只要你对Expression表达式树.EF的基本使用.泛型有所了解,那么本章节实质上就是一个非常简单的封装章节,便于我们快捷开发. PS:在该章节对于EF的DB上下文怎么处理,怎么来的,不做介绍,在后续的框架篇将详细介绍. 如果你对Expression.EF的增删改查.泛型生疏的话,可以先阅读以下章节: (1). Expression表达式目录树:http://www.cnblogs.com/yaopengfei/p/7486870.html (2

在Asp.net core使用配置Json创建动态目录树

一.前言 使用动态目录树可以使左边栏中的目录更加灵活,本文介绍如何将目录保存在json配置文件中,再读取出来经过处理后生成目录树. 二.数据结构 1. TreeMenuNode类名 将TreeMenuNode类设置成与json格式相对应,注意Children应为List类型.目录的内容包括MenuName,Action,Controller,Icon public class TreeMenuNode2 { public int MenuNumber { get; set; } public s

通过表达式目录树拼装lambda表达式,来实现两个类型的复制

一.下面的方法实现两个类型间的值复制 /// <summary> /// 交换两个类型的属性(复制) /// </summary> /// <typeparam name="Tin"></typeparam> /// <typeparam name="Tout"></typeparam> public static class ExpressionCopy<Tin, Tout> {

利用jQuery无插件创建可扩展目录树

这是一个简单.轻量级的,基于jQuery的目录树.纯html代码. <html> <head> </head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>   <script> $( document ).ready( function( ) {     $( '.t

【Lua】Lua + LWT + ExtJS构建目录树

Lua处理后台逻辑,Lua lwt搭建后台程序,ExtJS根据后台传来的json数据构建目录树. 前台html和ExtJS代码不用多讲,直接上代码: treePanel.html 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 5 <title>ExtJS TreePanel</

JS动态构建一棵目录树

JS动态构建一棵目录树 在使用frameset布局的时候,经常会用到目录树,我们可以把一棵树写死,但是更多的情况是,这棵树需要随时被改动,所以我们期望的是他能够被动态的构建. MVC,算是了解一点,那本文就把这棵树根据M-V-C给拆开分解吧. 点击链接demo→ 下面就来看看这棵树是怎么构建的. Module [数据层] var tree = { "id": 0, "a1": { "id": 1, "name": "