在C#中,GetHashCode()方法是用于獲取對象的哈希碼的方法。哈希碼可以用于快速查找對象,通過在哈希表中存儲對象的哈希碼來實現快速查找。
在C#中,可以重寫基類Object中的GetHashCode()方法來自定義對象的哈希碼生成邏輯。通常,可以將對象中的字段進行混合運算生成哈希碼,確保不同對象有不同的哈希碼。
以下是一個簡單的示例,演示如何重寫GetHashCode()方法:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override int GetHashCode()
{
unchecked
{
int hash = 17;
hash = hash * 23 + Name.GetHashCode();
hash = hash * 23 + Age.GetHashCode();
return hash;
}
}
}
在這個示例中,Person類重寫了GetHashCode()方法,將Name和Age屬性的哈希碼進行混合運算得到最終的哈希碼。通過重寫GetHashCode()方法,可以確保相同屬性的不同對象具有不同的哈希碼,提高哈希表的查找效率。