java 好像没有用过 equals 去比较两个对象的情况 (出了String外)
这个C# 中既然还遇到了。 比较两个时间的内容是不是一致的。 开始用!= 来比较总是false
不晓得咋个一下 想通了。 tostring() 让后再用 equals 还应为C# 应该是实现了这样的方法的。
结果和java 一样。 要用equals 来比较自己去实现。 不晓得C# 可以不可以重写这样方法额。
搞了今天的 C# 脑壳大的没有话说了。 看来C#以后还是少沾的好呀。。
equals java好多地方都自己实现 看来有的东西不能含糊呀。 不让抓狂的只是bug了
注意,在重写equals方法时,要注意满足离散数学上的特性
1、自反性 :对任意引用值X,x.equals(x)的返回值一定为true.
2 对称性: 对于任何引用值x,y,当且仅当y.equals(x)返回值为true时,x.equals(y)的返回值一定为true;
3 传递性:如果x.equals(y)=true, y.equals(z)=true,则x.equals(z)=true
4 一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变
5 非空性:任何非空的引用值X,x.equals(null)的返回值一定为false