Site icon Build School Blog

C#學習筆記-物件與類別(3):成員概觀

person encoding in laptop

Photo by Lukas on Pexels.com

類別的成員有許多,為了將類別設計圖變得更加完善,以下整理了官網內的類別成員的概觀

類別成員概觀:

欄位:

是在類別範圍中宣告的「變數」,一般而言,只針對具有 private 或 protected 存取範圍的變數使用欄位。

常數:

在編譯階段就設定好的欄位,使用const修飾詞所宣告。

編譯後,會把Months通通替代為12,不能再做任何變更。

當參照其他程式碼中所定義的常數值 (例如 DLL) 時,如果新版本的 DLL 定義常數的新值,則除非對新版本重新編譯新值,否則原本的程式仍會保留舊常值。

屬性:

在類別上的方法,可供存取,就像欄位一樣。屬性可以保護類別內的欄位,以免被外部修改。

支援欄位的屬性

運算式主體定義

從 C# 6 開始,唯讀屬性可將get 存取子實作為運算式主體成員。 在此情況下,不會使用 get 存取子關鍵字和 return 關鍵字。

從 C# 7.0 開始,可同時將 get 和 set 存取子實作為運算式主體成員。 在此情況下,必須同時有 get 和 set 關鍵字。

自動實作屬性

如果屬性同時具有 get 和 set (或 get 和 和 init) 存取子,則必須自動實作兩者。 您可以使用 get 和 set 關鍵字,但不提供任何實作,來定義自動實作屬性。

讓 SaleItem 物件現在會透過呼叫無參數建構函式和 物件初始化運算式來初始化。

方法:

方法是在類別、結構或介面中宣告,方法是指定存取層級(例如publicprivate )、選擇性修飾詞( 例如sealed )、傳回值、方法的名稱,以及任何方法參數。 這些部份放在一起即為方法的簽章。

方法的參數與引數

事件:

可以讓類別或物件在某些相關的事情發生時,告知其他類別或物件。可以使用委派來定義和觸發事件。
傳送 (引發) 事件的類別稱為「發行者」,以及接收 (處理) 事件的類別,稱為「訂閱者」。

事件概觀

運算子:

多載運算子視為類型成員,由內建型別提供。

索引子:

索引子可以讓物件利用與陣列類似的方式編製索引,不需明確指定型別或執行個體成員,就能設定或擷取已索引的值。 索引子和屬性類似,差異在於它們的存取子會採用參數。

建構函式:

建構函式是第一次建立物件時所呼叫的方法。 通常會用來初始化物件的資料,類別或結構可有使用不同引數的多個建構函式。
建構函式是名稱與其類別名稱相同的方法。其方法簽章只包含選擇性的 存取修飾詞、方法名稱和其參數清單,它不包含傳回型別。

靜態建構函式

完成項:

完成項是即將從記憶體中移除物件時,由執行階段執行引擎所呼叫的方法(無法主動呼叫)。它們通常用來確保任何必須發行的資源有受到妥善處理。

巢狀類別:

在類別內再定義類別,通常用於描述僅供該類型使用的這些物件。

參考資料

成員 – C# 程式設計手冊 | Microsoft Docs

本文同步發布在:C#學習筆記 — 物件與類別(3):成員概觀
若對內容有任何疑問或內容有錯誤,歡迎來信: andyhuang@build-school.com
Andy Huang

PM・Software Engineer・Student Coach @BuildSchool

Exit mobile version