嗚嗚喔學習筆記: C# Struct 的自動哈希與相等比較:簡化開發的優勢

搜尋此網誌

2024年10月8日 星期二

C# Struct 的自動哈希與相等比較:簡化開發的優勢

### 結論簡短版 `struct` 的一個重要優勢是,在大多數情況下,不需要手動覆寫 `GetHashCode()` 和 `Equals()`。C# 會自動基於 `struct` 的成員生成這些方法,讓開發更簡單並減少錯誤風險。這在需要高效查找和相等比較的情況下非常實用。 ### 範例說明 假設我們有一個 `Point` 結構:


struct Point
{
    public int X { get; }
    public int Y { get; }

    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }
}


在這裡,我們不需要覆寫 `GetHashCode()` 和 `Equals()`,就可以直接將 `Point` 用作 `Dictionary` 的鍵:


var pointsDictionary = new Dictionary();
pointsDictionary[new Point(1, 2)] = "First Point";

// C# 自動處理哈希和相等比較
Console.WriteLine(pointsDictionary[new Point(1, 2)]); // 輸出:First Point


這展示了 `struct` 自動處理哈希和相等比較的方便性,讓我們不必手動覆寫這些方法,仍然可以高效使用字典查找等功能。

沒有留言:

張貼留言