前言
之前有講到 C# Value Type、Reference Type 的差異,現在來講一下 Class 和 Struct 選擇。
從上一篇的文章中可以知道 Class 是 Reference type,而 Struct 是 Value type。
如何選擇
作為經驗規則,架構中大部分的類型應該為類別。 不過,在某些情況下,實值型別的特性會使它更適合使用結構。
可以知道其實大部分時都是使用 Class,但在某些情況下使用 Struct 會比較適合。
什麼時候使用 Struct
如果類型的執行個體很小,且通常短期或通常內嵌在其他物件中,請考慮定義結構,而不是類別。
除非類型具有下列所有特性,否則請「避免」定義結構:
其以邏輯方式表示單一值,類似於基本類型 (int、double 等)。
其執行個體大小低於 16 個位元組。
類型為不可變,
而且不需要經常進行 Box。
在所有其他情況下,您應該將類型定義為類別。