c# 類和成員的修飾詳細介紹

來源:互聯網
上載者:User

基本概念
一.類是對於業務處理對象的封裝, 包括狀態和行為的封裝.
二.類的成員種類:
1.常量: 資料值恒定不變的一個符號
2.欄位: 欄位表示一個唯讀或者可讀寫的資料值. 通常用欄位來標識一個類或者類產生對象的某種狀態,
在實踐中,通常將欄位標識為private, 避免從類/對象外破壞類/對象的狀態。
3.執行個體構造器(Constructor):將新對象的執行個體欄位初始化為良好初始狀態的一種特殊方法。
4.類型構造器,也就是靜態Constructor, 用來初始化類的靜態欄位。
5.方法:一個特殊的函數,用來更改或者查詢一個類型或者對象的狀態。
6.屬性:用來封裝欄位在外部的訪問,避免直接存取欄位。
7.事件:封裝一個委託鏈,通過某種觸發機制,通知委託鏈中的方法執行。
8.子類型:嵌套在類型中的類型,作用是分離複雜性。
9.操作符重載:重新定義在類所產生對象之間的特定操作:例如 +, -, ++等。
10.轉換操作符:定義如何顯示或者隱式的將類轉換為另外一種類型。

類的修飾關鍵字
一. 可訪問性修飾
1. public:用於非嵌套類,訪問無限制。
2.internal:用於非嵌套類,僅對定義程式集的所有代碼可見。
3.private:用於嵌套類,僅對包含它的類的成員可見。
4.protected:用於嵌套類,僅對包含它的類A以及A的衍生類別A_Derived中的成員可見。
二.靜態類修飾符
1.static:用於定義永遠不需要執行個體化的類,例如Console, Math, Environment等。
2.靜態類不能繼承除System.Object以外的基類,也不能實現介面
3.靜態類只能定義靜態成員
4.靜態類不能作為欄位,方法參數或者局部變數使用,因為它們都代表引用了一個執行個體的變數。
三.部分類別修飾符
1.Partial: 用於將一個類或者結構分解成不同的邏輯單元,目的在於分解類型的複雜性。
2.常見情境在Winform定義表單或者控制項時,自動產生的前端單元和邏輯單元。
四.組件與多態修飾符
1.abstract: 表明一個抽象類別,不能直接產生該類的執行個體,只能通過繼承的方式實現。
2.sealed: 表明該類型不能用於基底類型。
3.new:用於在衍生類中定義的巢狀型別,表明該巢狀型別與基類中的同名巢狀型別無關。

類成員的修飾關鍵字
一.可訪問性:不詳細解釋,與類的修飾大同小異
1.public
2.private
3.protected
4.internal
二.靜態成員:不詳細解釋
三.組件與多態修飾:
1.abstract: 用於基類成員,表示為了構造衍生類別型的執行個體,衍生類別型必須實現並且重寫這個方法。
2.virtual: 用於基類成員,表示這個成員可由衍生類別型重寫
3.override: 用於衍生類別成員,表示衍生類別型重寫了基底類型的成員。
4.sealed: 用於基類成員,表示這個成員不能被衍生類別型重寫,只能用於方法。
5.new:用於衍生類別成員,表示這個成員與基類中的同名成員不存在重載關係。

本章知識最佳實務
一.設計類和成員的可訪問性的最佳實務:
1.定義類時,除非確定它將作為基類使用,不然應該講它指定為Sealed。
原因是:衍生類別型的行為不可預測,如果基類沒有進行密封,在後續版本中或者其他團隊成員定義的衍生類別有可能會破壞基類的狀態或者預期行為。
2.定義類時,如果不確定將在程式集外公布這個類,則應該將類指定為internal。
原因也是出於安全性方面的考慮。
3.在類的內部,所有資料欄位都應該定義為private,原因是出於對狀態的保護。每個類/對象的狀態都應該只能由自己本身來控制。
4.在類的內部,除非確定某個方法,屬性需要在子類中重寫,不然不要使用virtual。
原因有兩個,一是調用虛方法在CLR中會消耗更多效能;二是虛方法會喪失基類對自身行為的控制權。
5.在類中定義嵌套類時,應將嵌套類修飾為private。這個規則在VS中會被強制檢查。
二.靜態類與單例模式的異同:
1.相同之處:都為類型成員提供單一入口
2.不同之處:
a.靜態類難以控制初始化時機
b.靜態類不支援基類,衍生類別,也不支援實現介面,對多態的支援性較差。
c.靜態類的實現較為簡單,不支援多態的情況下安全性較高

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.