首页 > 代码库 > C# 表达式树
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(); }
接下面我们写个复杂一点的
代码地址
C# 表达式树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。