首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在第三方库中将类的相等函数放在哪里?

在第三方库中将类的相等函数放在哪里?
EN

Stack Overflow用户
提问于 2011-02-18 18:00:10
回答 2查看 73关注 0票数 0

我使用的是一个第三方库,其中包含一个同时缺少operator==()和Equals()的类。我想自己实现一个,但我不确定如何命名它,以及将它放在哪里。我尝试将这两个运算符都添加为扩展方法,但都失败了。我现在已经编写了一个IsEqualTo()函数,但是它导致了相当混乱的客户端代码。有没有人知道更优雅的解决方案?

EN

回答 2

Stack Overflow用户

发布于 2011-02-18 18:03:18

是否可以从第三方类继承或包装第三方类?

票数 1
EN

Stack Overflow用户

发布于 2011-02-18 18:03:36

您不能重载==操作符,但您可以创建一个IEqualityComparer<T>,用于字典等操作。

虽然您可以编写Equals扩展方法,但它永远不会被使用,因为Object上的虚方法总是适用的,并且如果存在适用的实例方法,编译器就不会寻找扩展方法,即使有更具体的方法也不会。

您可能希望将IsEqualTo方法重命名为ValueEquals或类似的名称...但我同意这仍然不是很理想。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5039889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档