一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

浅谈c#表达式树Expression简单类型比较demo

时间:2017-04-06 编辑:简简单单 来源:一聚教程网

 代码如下复制代码

usingSystem;

usingSystem.Linq.Expressions;

 

classDynamicPredicate

{

  publicstaticExpression> Generate(stringop)

  {

    ParameterExpression x = Expression.Parameter(typeof(T),"x");

    ParameterExpression y = Expression.Parameter(typeof(T),"y");

    returnExpression.Lambda>

    (

      (op.Equals(">")) ? Expression.GreaterThan(x, y) :

        (op.Equals("<")) ? Expression.LessThan(x, y) :

          (op.Equals(">=")) ? Expression.GreaterThanOrEqual(x, y) :

            (op.Equals("<= stringop=""">=";

    var integerPredicate = DynamicPredicate.Generate(op).Compile();

    var floatPredicate = DynamicPredicate.Generate(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(">").Compile()(fA, fB));

 

    Console.ReadLine();

  }

热门栏目