### 結論簡短版
`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` 自動處理哈希和相等比較的方便性,讓我們不必手動覆寫這些方法,仍然可以高效使用字典查找等功能。