我有一个这样的界面:
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==b
任何a.Equals(b)
地方,但这并不好。
我能做些什么?