zoukankan      html  css  js  c++  java
  • C# 表达式树

     为了演示,创建了一个类

        public class Person
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public string Address { get; set; }
    
        }

      我们来看表达式树究竟是个什么东西

    这个就是表达式树啦,可以看到它最重要的就是Body 在这里我们就可以找到我们写的表达式了

    下面我们通过一个例子来看表达式树怎么用

      因为内置的ExpressionType没有办法满足我们的要求,所以我们重写

        public static class Ex
        {
            public static string TransfromNodeType(this ExpressionType ex)
            {
                switch (ex)
                {
                    case ExpressionType.Add:
                        return "+";
                    case ExpressionType.Equal:
                        return "=";
                    case ExpressionType.Multiply:
                        return "*";
                    case ExpressionType.AndAlso:
                        return "and";
                    default :return "";
                }
            }
        }

      然后我们简单的调用一下

            static void Main(string[] args)
            {
                Expression<Func<Person, bool>> lamda = d => d.Name == "123123";
                var e = (BinaryExpression)lamda.Body;
                string s = ((MemberExpression)e.Left).Member.Name + "=" + ((ConstantExpression)e.Right).Value;
                Console.WriteLine(s);
               
                Console.Read();
            }

      接下面我们写个复杂一点的

      代码地址

    Hold on, everything is possible.
  • 相关阅读:
    Appium Desktop使用
    mumu模拟器使用
    adb
    测试准出
    缺陷管理
    测试准入检查
    测试工作流程
    需求测试分析
    异常字符测试
    今日总结
  • 原文地址:https://www.cnblogs.com/student-note/p/6961973.html
Copyright © 2011-2022 走看看