C#:相同的对象必须是相同的HashCode?

Son*_*nül 4 .net c# equals object hashcode

让我们假设我有两个叫做K和的对象M

if(K.Equals(M))
{

}
Run Code Online (Sandbox Code Playgroud)

如果这是真的,K并且M 总是一样的HashCode

或者这取决于编程语言?

Ras*_*ber 5

合同GetHashCode()要求它,但由于任何人都可以自己实施,因此无法保证.

许多类(尤其是哈希表)需要它才能正常运行.

如果要实现类,则应始终确保两个相等的对象具有相同的哈希码.

如果您正在实现一个实用程序方法/类,您可以假设两个相等的对象具有相同的哈希码(如果不是,则它是另一个类,而不是您的,这是错误的).

如果您正在实现具有安全隐患的内容,则无法承担它.