Overriding GetHashCode

9 浏览
0 Comments

Overriding GetHashCode

这个问题在这里已经有答案了

如何覆盖GetHashCode的最佳算法是什么?

正如你所知,GetHashCode返回一个半唯一的值,可以用来标识集合中的对象实例。作为一种良好的实践,建议覆盖此方法并实现自己的方法。

我的问题是-当处理自定义对象时是否要覆盖此方法?如果是,您使用什么算法生成唯一的ID?

我想到了生成GUID,然后从该标识符获取整数数据。

admin 更改状态以发布 2023年5月20日
0
0 Comments

当你重写GetHashCode()时,你还需要重写Equals()operator==operator!=。并且要非常小心地满足所有这些方法的要求。相关指南可在MSDN上找到。最重要的引用如下:

在可变类型中重写运算符==不是一个好主意。

0
0 Comments

如果您使用resharper,它可以为您生成GetHashCode(),Equals和operator方法体。

按下Alt+Insert键打开此菜单。

http://www.jetbrains.com/resharper/webhelp/Code_Generation__Equality_Members.html

0