集合类型的默认相等比较器是什么?在不带参数的HashSet构造函数的MSDNAPI中,它声明使用集合类型的默认相等比较器初始化空HashSet类的新实例。集合类型(例如自定义类)的默认相等比较器是什么?顺便说一句:是我一个人还是MSDNAPI文档的解释真的有点薄?我在阅读时不止一次地偶然发现了这些问题。这意味着它将使用EqualityComparer.Default返回的比较器作为集合类型T的元素,如文档所述:Default属性检查类型T是否实现System.IEquatable接口,如果是,则返回使用该执行。否则,它返回一个EqualityComparer,它使用T提供的Object.Equals和Object.GetHashCode的覆盖。因此对于您的自定义类型,它将使用您定义的GetHashCode方法来查找集合中的项目。如果您已经实现了IEquatable,它将使用IEquatable.Equals(T)来实现相等性,否则它将使用您的Equals(object)方法。此方法默认引用对象类中定义的相等性。因此,如果您使用任一方法定义相等性,则应确保也覆盖GetHashCode。默认情况下,它将委托给EqualityComparer.Default。这将返回一个可以比较两个类型T的对象的比较器。对于自定义类,这将按以下顺序执行以下操作:以上是C#学习教程:集合类型的默认相等比较器是什么?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
