我需要为业务对象编写第二个相等比较器。它是一个专门的相等比较器,仅适用于某些情况。我不想覆盖 Equal(),因为我们的持久层使用它在内部比较对象以供自己使用。让我给你一个类的例子:
public class Product : BusinessObjectBase
{
string Name {get;set;}
string Desc {get;set;}
double Price {get;set;}
}
由于我们在数据访问层中将这三个属性标记为持久数据属性,因此 BusinessObjectBase 中的 Equals() 会比较这些属性。现在,在特定情况下,我想检查产品 A 是否等于产品 B 只是名称。我不想硬编码支票上的实际属性,因为这个属性以后可能会改变。
虽然可以在这里使用 IComparer,但根据 MSDN 上的描述,IComparer 不应该用于等同项,而是用于对它们进行排序,因此这似乎不是 100% 正确的答案。我想使用 .NET 已有的东西,而不是创建另一个接口。做这个的最好方式是什么?
谢谢