浅谈c#表达式树Expression简单类型比较demo
实例如下:
usingSystem; usingSystem.Linq.Expressions; classDynamicPredicate { publicstaticExpression<Func<T,T,bool>>Generate<T>(stringop) { ParameterExpressionx=Expression.Parameter(typeof(T),"x"); ParameterExpressiony=Expression.Parameter(typeof(T),"y"); returnExpression.Lambda<Func<T,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 ); } } staticvoidMain() { stringop=">="; varintegerPredicate=DynamicPredicate.Generate<int>(op).Compile(); varfloatPredicate=DynamicPredicate.Generate<float>(op).Compile(); intiA=12,iB=4; Console.WriteLine("{0}{1}{2}:{3}", iA,op,iB,integerPredicate(iA,iB)); floatfA=867.0f,fB=867.0f; Console.WriteLine("{0}{1}{2}:{3}", fA,op,fB,floatPredicate(fA,fB)); Console.WriteLine("{0}{1}{2}:{3}", fA,">",fB,DynamicPredicate.Generate<float>(">").Compile()(fA,fB)); Console.ReadLine(); }
以上这篇浅谈c#表达式树Expression简单类型比较demo就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。