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


本文摘自PHP中文网,作者黄舟,侵删。

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

实例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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();

  }

以上就是简单介绍c#表达式树Expression简单类型比较demo的示例代码的详细内容!

相关阅读 >>

c#格式化数字代码示例详解

详细介绍c#实现的md5加密功能与用法示例

c#实现原图片转缩略图

c#系列文章事件

c#调用默认浏览器打开网页的几种方法具体介绍(图)

详细介绍c# string格式的日期时间字符串转为datetime类型的方法

c#中复制构造函数是什么

c#基础入门-简单了解注释

简单介绍c#类的继承的示例代码

c#基于正则表达式如何删除字符串中数字或非数字的方法详解

更多相关阅读请进入《Expression》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...