我有这样的界面:
public interface IFoo
{
int A {get;}
int B {get;}
}
Run Code Online (Sandbox Code Playgroud)
我有多个实现IFoo的类.
我想检查相等性,而不是基于ReferenceEquality,但是如果A和B都相同,那么两个IFoos应该被认为是相同的(实际上我正在检查通过WCF发送的Key-Value对的集合,这就是为什么我可以没有ReferenceEquality).
如果我有:
IFoo first = new FooBar1() { A = 1, B = 1};
IFoo second = new FooBar2() { A = 1, B = 1};
if (first == second) {
//this should return true
}
Run Code Online (Sandbox Code Playgroud)
目前IFoo是IEquatable<IFoo>,所以FooBar1和FooBar2重写Equals(IFoo other),但这不是在==上调用的内容.我正在搜索我的代码以替换a==b到a.Equals(b)任何地方,但这并不好.
我能做什么?