【发布时间】:2011-02-21 13:02:42
【问题描述】:
我有一个这样的界面:
public interface IFoo
{
int A {get;}
int B {get;}
}
我有多个实现 IFoo 的类。
我想检查相等性,而不是基于 ReferenceEquality,但是如果 A 和 B 相同,则两个 IFoo 应该被认为是相等的(实际上我正在检查通过 WCF 发送的键值对的集合,这就是为什么我可以'没有 ReferenceEquality)。
现在如果我有:
IFoo first = new FooBar1() { A = 1, B = 1};
IFoo second = new FooBar2() { A = 1, B = 1};
if (first == second) {
//this should return true
}
目前IFoo 是IEquatable<IFoo>,所以FooBar1 和FooBar2 会覆盖Equals(IFoo other),但这不是在== 上调用的。我正在寻找我的代码以在任何地方用a.Equals(b) 替换a==b,但这并不好。
我能做什么?
【问题讨论】:
标签: c# .net interface equality iequatable