簡體   English   中英

為什么在C#中使用Connection.GetHashCode?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM