[英]Why is used Connection.GetHashCode in C#?
當我檢查一個項目時(我的公司代碼)。 我看了這個:
public override int GetHashCode()
{
unchecked
{
int result = 17;
result = result * 23 + ((connection != null) ? this.connection.GetHashCode() : 0);
return result;
}
}
實際上,我第一次見過GetHashCode()
。 我跑了一點。 但是我不明白為什么他們在代碼行和連接中使用它?
有特殊原因嗎? 使用getHashCode進行連接的邏輯是什么?
謝謝。
如果您知道一種為對象生成快速且分布良好的哈希鍵的好方法,則應使用GetHashCode。
當您要將對象存儲在字典等中時,這很有用。 更好的哈希意味着這些數據結構的效率更高。
否則,將使用基本的GetHashCode()。 在很多情況下,這是次優的。有關結合使用GetHasCode和Equals覆蓋的詳細信息,請參見;
http://msdn.microsoft.com/zh-CN/library/ms173147(v=vs.80).aspx
該GetHashCode可用於快速識別兩個實例是否看起來“相同”(不同的哈希碼=不同的實例;相同的哈希碼可能意味着相同的實例)。
顯然,“連接”字段對於確定對象的身份很重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.