類別和結構 (C# 程式設計手冊)

類別 (Class) 和結構 (Struct) 是 .NET Framework 一般類型系統中的兩個基本建構。這兩個本質上都是資料結構 (Structure),封裝了一整組資料和行為以組成邏輯單元。資料和行為是類別或結構的「成員」(Member),各自包含自己的方法、屬性和事件等,本主題稍後會列出。

類別或結構宣告就像是藍圖,用於建立執行階段的執行個體 (Instance) 或物件。如果您定義名為 Person 的類別或結構,Person 就是類型的名稱。如果您宣告並初始化變數 p 為類型 Person,則 p 就是 Person 的物件或執行個體。同一個 Person 類型可以建立多個執行個體,而每個執行個體的屬性和欄位可以有不同的值。

類別是「參考類型」(Reference Type)。建立類別的物件時,物件所指派的變數僅持有該記憶體的參考。將物件參考指派給新變數時,新變數會參考原始物件。對其中一個變數進行的變更,會反映到另一個變數中,因為這兩個變數參考相同資料。

結構是實值類型 (Value Type)。建立結構時,結構所指派的變數會持有結構的實際資料。將結構指派給新變數時,會進行複製。因此,新變數和原始變數總共包含兩份相同資料的不同複本。對其中一份複本進行的變更,不會影響另一份複本。

一般而言,類別是針對更複雜的行為或在類別物件建立後計劃用於修改的資料,用來塑造它們的模型。結構 (Struct) 則最適合小型資料結構 (Structure),其中包含的主要資料在結構 (Struct) 建立後並不計劃加以修改。

參考連結

發表留言