如您所知,GetHashCode返回一个半唯一值,该值可用于标识集合中的对象实例。作为一种好的做法,建议重写此方法并实现自己的方法。
我的问题是-在处理自定义对象时,您是否重写此方法?如果是这样,您使用什么算法来生成唯一ID?
我正在考虑生成GUID,然后从该标识符获取整数数据。
当你重写GetHashCode()你也需要重写Equals(),operator==和operator!=。并且要非常小心地满足这些方法的所有要求。
GetHashCode()
Equals()
operator==
operator!=
该准则位于MSDN上。最重要的报价:
在非不可变类型中覆盖运算符==不是一个好主意。