閱讀《LEARNING HARD C#學習筆記》知識點總結與摘要一


本人有幸在Learning Hard舉行的整點搶書活動《Learninghard C#學習筆記》回饋網友,免費送書5本中免費獲得了一本《LEARNING HARD C#學習筆記》,我(夢在旅途)雖然從事.NET開發多年,但一直都沒有能好好的系統學習,特別是C#5.0的知識,現如今有幸得到這本書,可以好好的溫習、鞏固和提升, 非常感謝Learning Hard!

我在收到該書后,花了約兩周的時間就看完了,主要是集中在晚上及周末時間,因為本書是從淺入深講解C#知識,我雖談不上什么高手,但C#早期版本的相關知識基本都熟悉和掌握了,所以在閱讀的時候側重點主要放在后面(13章及以后),速度也就比較。我閱讀一般喜歡做總結及摘要,書中重要的知識點會做上標記,以便后面再次復習。孔子曰:溫故而知新,可以為師矣,所以我在看完這本書后,覺得有必要針對書中的要點及自己平時的經驗積累總結一些文章,以便后續再次溫習,也供新手學習參考。文中可能有些因理解差異存在不足,還請大家評論與指點,共同進步,謝謝!

一..NET基礎

CLR:公共語言運行庫

CTS:通用類型系統

CLS:公共語言規范

 

受CLR管理的代碼稱為托管代碼,否則稱為非托管代碼

 

二.類型與變量

數據類型分為:值類型與引用類型

值類型有:數值、枚舉、結構體

引用類型有:接口、類、委托、字符串、數組

 

值類型在棧中分配內存空間並保存數據;

引用類型在堆上分配內存空間並保存數據,且在棧中保存指向堆中的數據地址;

 

裝箱:值類型轉換為引用類型;

拆箱:引用類型轉換為值類型;

 

常量:Const標識,在聲明時就必需初始化,且不能更改,通過類名來訪問;

 

變量:

Static:初始化一次並持續保存在內存空間中,可反復讀寫;

Readonly:僅允許在聲明時或所在類的構造函數中初始化,其它地方不可更改;

 

Static Readonly與Const的區別:

Static Readonly可在構造函數中初始化,而Const則不行;

Static Readonly在運行時分配內存空間,而Const則在編譯時分配內存空間;

 

三.運算符

運算符重載定義方法如下:

Public static 類型 opearator 運算符(類型1,類型2);

注意:運算符重載方法的訪問修飾符必需為Public static

 

四.條件與循環

條件語句:1.if-else        2.switch

循環語句:1.while          2.do-while        3.for          4.foreach

 

跳轉語句:

Break:跳出循環或分支;continue:跳過本次循環並繼續執行下一次循環;

Goto:跳轉到指定的標簽處(不建議使用);

Return:退出所在方法,並直接返回或返回值,不限深度;

 

五.類

類訪問修飾符

Public 公共不受限訪問,同程序集或引用該程序集中的其它程序集中類內外部均可訪問;

Private 私有訪問,僅限在類內部訪問;

Protected 受保護訪問,僅限在類內部及其子類內部中可訪問;

Internal 在同一個程序集中類內外部均可訪問;

Protected internal 在同一個程序集的類內部及其子類內部中可訪問;

注意:默認不添加修飾符,則表示以Internal形式訪問

Sealed 密封,不可繼承;

Abstract 抽象,必需繼承,若是抽象成員則在子類中需用override重寫該成員;

Statict 靜態密封,不可實例化,且不可繼承;

 

在命名空間中定義的元素(類,接口,結構體,委托等)無法顯式地聲明為 private、protected 或 protected internal

 

構造函數:

1.可重載;2.沒有聲明則編譯后默認生成無參且空實現的構造函數;3.構造函數名與類名相同;

4.無返回值;

作用:通過NEW相應的構造函數來實例化一個對象;

 

靜態構造函數:

1.不能使用訪問修飾符;2.有且只能定義一個無參構造函數(即:不能重載);3.只會執行一次;

作用:初始化類中靜態成員;

 

析構函數:

  1. 無訪問修飾符;2.有且只能定義一個無參析構函數;3.不能重載;4.由垃圾回器GC自動調用;5.結構體不能定義析構函數;

 

索引指示器:

定義方法:修飾符 類型 this[索引參數列表,…]

注意:索引指示器訪問修飾符不能為static

 

六.類與結構體區別

1.類是引用類型,結構體是值類型;

2.結構體不能在聲明字段時進行初始化,而必須在構造函數中進行初始化,而類不受限制;

3.類默認的無參構造函數在顯式聲明后則不存在,而結構體中不能顯式聲明,所以一直存在;

4.結構體僅可實現接口,不能繼承類或結構體,而類可以繼承類也可實現接口;

5.結構體不能聲明為abstact、sealed、static,而類均可以;

6.結構體可以直接不用new聲明對象,但未賦值的字段不可用,而類必需則通過NEW來實例化對象;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM