《CLR.via.C#第三版》第二部分第8,9章節讀書筆記(四)

來源:互聯網
上載者:User

標籤:ar   sp   代碼   bs   ef   nbsp   c   方法   編程   

三種類型的構造方法:

執行個體構造器(參考型別):執行個體構造器永遠不能被繼承(所以方法前沒有修飾符);如果類的修飾符為static(sealed和abstract),編譯器根本不會在類的定義中產生一個預設構造器。

重要認知:為了使代碼“可驗證”,類的執行個體構造器在訪問從基類繼承的任何欄位之前,必須先調用基類的構造器。如果衍生類別的構造器沒有顯示調用一個基類構造器,C#編譯器會自動產生對預設的基類構造器的調用。

              在類中聲明的欄位,實際在編譯器中是轉換成構造器中的代碼執行初始化。如果一個類中有3個欄位,3個建構函式,那麼編譯器實際產生三次初始化3個欄位的代碼--每個構造器一次。

執行個體構造器(實值型別):C#編譯器不允許實值型別定義無參構造器(有參的可以)。

類型構造器(靜態建構函式):只能定義一個,沒有參數,可以和普通建構函式共存,作用是設定類型執行個體的初始狀態。它的調用由CLR負責。它只執行一次(多線程時)。

 

擴充方法:

C#擴充方法:允許定義一個靜態方法,並用執行個體方法的文法來調用它。(只需在方法的第一個參數前加this關鍵字)

 

參數:

聲明方法的參數類型時,應盡量指定最弱的類型,最好是介面而不是基類。(講解了ref、out、params)

 

感悟:這本書講解C#這門程式設計語言,都是從編譯器,CLR的執行原理角度,非常深刻。這兩章個人感覺沒什麼特別重要的內容,所以列出一些重要概念,熟知這些概念即可。

《CLR.via.C#第三版》第二部分第8,9章節讀書筆記(四)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.