一.习题 http://www.cnblogs.com/Ninputer/archive/2009/08/28/expression_tree1.html 二.参考 http://msdn.microsoft.com/zh-cn/library/system.linq.expressions.expression.aspxhttp://msdn.microsoft.com/zh-cn/library/bb361179%28v=VS.100%29.aspx 三.思路 先写出lambda,参照lam…
1 // 第一题:画出下列表达式的表达式树.一开始,您很可能不知道某些操作其实也是表达式(比如取数组的运算符a[2]),不过没有关系,后面的习题将帮你验证这一点. //-a ParameterExpression e1 = Expression.Variable(typeof(int), "a"); UnaryExpression u = Expression.Negate(e1);//求反的表达式 Console.WriteLine(u); //a + b * 2 Parameter…
这篇文章介绍一个有意思的话题,也是经常被人问到的:如何构建动态LINQ查询?所谓动态,主要的意思在于查询的条件可以随机组合,动态添加,而不是固定的写法.这个在很多系统开发过程中是非常有用的. 我这里给的一个解决方案是采用Expression Tree来构建. 其实这个技术很早就有,在.NET Framework 3.5开始引入.之前也有不少同学写过很多不错的理论性文章.我自己当年学习这个,觉得最好的几篇文章是由"装配脑袋"同学写的.[有时间请仔细阅读这些入门指南,做点练习基本就能理解]…
一.   引子 监控画面的主要功能之一就是跟踪下位机变量变化,并将这些变化展现为动画.大部分时候,界面上一个图元组件的某个状态,与单一变量Tag绑定,比如电机的运行态,绑定一个MotorRunning信号:但有些时候不会这么简单,比如温度计在温度高于50℃显示红色;某设备报警,可能是多个条件其中之一触发的结果:变量变化触发一系列连锁反应…如此种种.考虑到工控行业大部分技术人员并非计算机专业出身,如何能够用最少的编码解决各种复杂的变量-动画绑定问题,无疑要费一番心思. 二.   方案选型 针对变量…
这个有趣的问题感谢装配脑袋友情提供. 请看如下代码: public class Dummy { public static Dummy Instance; ; ~Dummy() { Instance = this; } } 通过如下代码进行调用(输出日志的地方我稍作调整): Task.Run(() => { var d = new Dummy(); d = null; GC.Collect(); GC.WaitForFullGCComplete(); }).Wait(); var isNull…
Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法 于是我们可以把上面的语法改写成如下形式:1 合并前缀1 语法分析有自上而下和自下而上两种分析方法2 递归下降是现阶段主流的语法分析方法,2 于是我们可以把上面的语法改写成如下形式: 1)       Operator="+" | "-" | "*" | "/" 2)       Expression=<数字>…
之前,在项目中看到过一段通用列表类型转换的代码,直接的实现便是用反射.大概看了下,它用在领域模型转DTO和SOA接口中契约实体的转换等等.首先,它使用了反射,其次,还是在循环中使用,便有了优化的想法. 方法原型如:public static List<TResult> ConvertList<TSource, TResult>(List<TSource> source) where TResult : new(),下面贴出代码.说明一下,在此我没有任何的贬义,这段代码可…
原文:T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst.语言版本影响! CSDN 的 Blog 太滥了!无时不刻地在坏! 开始抢救性搬家 ... ... 到这里重建家园 /* T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst.语言版本影响 都是从老文章里收集或提炼出来的! 提示: (@@Datefirst + datepart(weekday,@Date)) % 7 判…
性能优化-列表类型转换(ConvertList<TSource, TResult>) 2013-12-16 16:55 by stevey, 426 阅读, 7 评论, 收藏, 编辑 之前,在项目中看到过一段通用列表类型转换的代码,直接的实现便是用反射.大概看了下,它用在领域模型转DTO和SOA接口中契约实体的转换等等.首先,它使用了反射,其次,还是在循环中使用,便有了优化的想法. 方法原型如:public static List<TResult> ConvertList<T…
笔者注 谨以此文纪念我敬重的2016年9月17日去世的 装配脑袋 逝世两周年 让大家久等了,前后花了1年的时间,几经改版,终于完成撰写了一万字长文,回顾和展望.NET这16年来的成功与失败.最终能成文是因为我给自己承诺必须赶在 装配脑袋 逝世两周年前发表.愿天堂没有bug,活着的开发人员珍惜写好每一行代码的机会. 前言 .NET正式诞生了16年了,目前是微软技术栈的主要开发平台.笔者有幸在2002年在生产环境使用.NET 1.0 beta,一直到现在.NET Core 2.1,见证了.NET从最…