浅谈c#表达式树Expression简单类型比较demo
发布时间:2020-12-15 06:09:49 所属栏目:百科 来源:网络整理
导读:实例如下: using System;using System.Linq.Expressions;class DynamicPredicate{ public static ExpressionFuncT,T,bool GenerateT(string op) { ParameterExpression x = Expression.Parameter(typeof(T),"x"); ParameterExpression y = Expression.Param
实例如下: using System; using System.Linq.Expressions; class DynamicPredicate { public static Expression<Func<T,T,bool>> Generate<T>(string op) { ParameterExpression x = Expression.Parameter(typeof(T),"x"); ParameterExpression y = Expression.Parameter(typeof(T),"y"); return Expression.Lambda<Func<T,bool>> ( (op.Equals(">")) ? Expression.GreaterThan(x,y) : (op.Equals("<")) ? Expression.LessThan(x,y) : (op.Equals(">=")) ? Expression.GreaterThanOrEqual(x,y) : (op.Equals("<=")) ? Expression.LessThanOrEqual(x,y) : (op.Equals("!=")) ? Expression.NotEqual(x,y) : Expression.Equal(x,y),x,y ); } } static void Main() { string op = ">="; var integerPredicate = DynamicPredicate.Generate<int>(op).Compile(); var floatPredicate = DynamicPredicate.Generate<float>(op).Compile(); int iA = 12,iB = 4; Console.WriteLine("{0} {1} {2} : {3}",iA,op,iB,integerPredicate(iA,iB)); float fA = 867.0f,fB = 867.0f; Console.WriteLine("{0} {1} {2} : {3}",fA,fB,floatPredicate(fA,fB)); Console.WriteLine("{0} {1} {2} : {3}",">",DynamicPredicate.Generate<float>(">").Compile()(fA,fB)); Console.ReadLine(); } 以上这篇浅谈c#表达式树Expression简单类型比较demo就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |