![]() |
1
4
好吧,让我们先来处理一些误解:
这是真的,但仅适用于引用类型。值类型将实现
very
slow
reflection-based
哦,我相信你可以。。。
呃……不。
因此,对于您的实际问题:
您对此似乎仍有点困惑,但不要担心:)
谜题实际上建议您创建一个
不同的
实现的类型
默认情况下,(正确编写的)框架数据结构将把相等比较委托给
不一定。它应该是自洽的:如果
它
可以
实现方式与
现在我希望你已经理解了实现
请阅读我的答案 Using of IEqualityComparer interface and EqualityComparer class in C# 以获取更深入的信息。 |
![]() |
2
2
部分-“默认”
我认为您混淆了在自定义类型中定义“相等”的两种不同方法。一是通过实施
另一个是
所以如果你对
如果您对“平等”的定义
仅适用于特定用例
,然后创建
不同的
实现的类
否-仅接受的实例的类型和方法
它将计算传入对象的哈希代码。它不会将哈希代码与任何东西“比较”。它不必返回与重写的
这就是为什么
要旨
如果希望将“等于”的定义作为该类型的默认值,请实现
另外,我要指出,您很少直接调用这些方法(除了
|