У меня есть такой интерфейс:
public interface IFoo
{
int A {get;}
int B {get;}
}
и несколько классов, реализующих IFoo.
Я хочу проверить равенство, а не на основе ReferenceEquality, но два IFoo должны считаться равными, если оба A и B одинаковы (на самом деле я проверяю коллекцию пар ключ-значение, отправленную через 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
, поэтому FooBar1 и FooBar2 переопределяют Equals (IFoo other)
, но это не то, что призвал ==. Я ищу свой код, чтобы заменить a == b
на a.Equals (b)
везде, но это просто неприятно.
Что я могу сделать?