最佳答案
GetHashCode()
的契约(Contract)需要它,但由于任何人都可以自己实现它,因此永远无法保证。
许多类(尤其是哈希表)需要它才能正确运行。
如果您正在实现一个类,您应该始终确保两个相同的对象具有相同的哈希码。
如果你正在实现一个实用方法/类,你可以假设两个相同的对象具有相同的哈希码(如果不是,那是另一个类,而不是你的,这是错误的)。
如果您正在实现具有安全隐患的内容,您不能假设它。
关于C#:相同的对象必须具有相同的 HashCode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6899041/