【发布时间】:2010-10-14 23:09:13
【问题描述】:
是否有可能找出两个表达式是否相同?
如给定以下四个表达式:
Expression<Func<int, bool>> a = x => false;
Expression<Func<int, bool>> b = x => false;
Expression<Func<int, bool>> c = x => true;
Expression<Func<int, bool>> d = x => x == 5;
那么,至少我们可以看到:
a == ba != ca != d
但是我可以做些什么来在我的代码中找到它吗?
看了一下 msdn 库,上面写着
Equals:判断指定的Object是否等于当前的Object。 (继承自Object。)
我猜这意味着至少 Expression 类没有重写 equals 方法以成为 Equatable?那么你会怎么做呢?还是我在这里要求太多了? :p
【问题讨论】:
-
如果里面有
MemberInfo,我的意思是一些方法,字段的属性,那么你可以先获取memberinfo,然后计算它的hash
标签: c# expression equality