• 技术文章 >后端开发 >C#.Net教程

    简单介绍c#表达式树Expression简单类型比较demo的示例代码

    黄舟黄舟2017-03-22 11:53:47原创951
    下面小编就为大家带来一篇浅谈c#表达式树Expression简单类型比较demo。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    实例如下:

    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, 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, op, fB, floatPredicate(fA, fB));
    
        Console.WriteLine("{0} {1} {2} : {3}",
                  fA, ">", fB, DynamicPredicate.Generate<float>(">").Compile()(fA, fB));
    
        Console.ReadLine();
      }

    php入门到就业线上直播课:查看学习

    以上就是简单介绍c#表达式树Expression简单类型比较demo的示例代码的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:Expression,c#,demo
    上一篇:C#中GUID生成格式的四种方法的示例代码分享 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• c语言中源文件编译后生成什么文件• c语言标识符有哪些类型• ASP.NET使用Ajax如何返回Json对象的方法具体介绍• C#中GDI+编程10个基本技巧二• 应用绝对路径与相对路径
    1/1

    PHP中文网