c# - 重写相等运算符

标签 c# operator-overloading equals gethashcode

我实现了一个重载 ==!= 运算符的类。

这似乎工作正常;但是,我收到警告 'type' defines operator == or operator != but does not override Object.Equals(object o)

好的,所以我实现了 Equals。但现在我收到警告 'type' defines operator == or operator != but does not override Object.GetHashCode()

这会在某个时候结束吗?还是我只是因为想重载 ==!= 而陷入了永无止境的需求跟踪?

最佳答案

Does this end at some point?

是的,一旦你实现了GetHashCode它会结束。 Eric Lippertblogged about its importance .我所能做的就是建议你阅读并相信他:-)

关于c# - 重写相等运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822847/

相关文章:

c# - MVC 4 和 Google Charts - 如何将折线图的数据从 Controller 传递到 View ?

c# - 使类的属性线程安全的最佳实践是什么?

c++ - [] C++中get和set操作的运算符重载

Java,字符串的运算符重载和 "+"运算符

c++ - 如何重载 operator[] 以允许 `object[a] = b` ?

c# - JSON 解析错误 : Missing a name for object member

c# - C# .NetCF 2.0 中 String.Contains() 的解决方法?

java - JPA的BaseEntity中如何实现equals()和hashcode()方法?

java - equals() 方法不起作用

java - 为具有浮点成员的类实现 "tolerant" `equals` & `hashCode`