Clr via C 讀書筆記 Cp13介面

2022-01-15 19:17:37 字數 361 閱讀 8978

介面只提供簽名,不提供實現;等效於契約;凡事能使用具名介面的地方都能夠使用實現了的介面。

定義很簡單,fcl也提供了大量的現成介面供使用;

類不能多繼承,介面可以;

變數可以是介面,但是只能呼叫這個介面約定的操作;

隱式介面的操作可以通過類變數進行,而顯示介面的實現,只能通過介面型別的變數進行;

協變和逆變;泛型和介面的約束;

必須使用顯式介面的實現。

優點:可以減少值型別的裝箱,增強部分型別安全性;

缺點:利用介面呼叫的時候還是會產生裝箱,不能由派生類呼叫;

顯式介面確實用的不多;

is-a vs can-do;is-a用繼承,can-do用介面;可以同時用;

Clr via C 讀書筆記 Cp16陣列

一維陣列,多維陣列,交錯陣列 引用型別 p338的圖非常的清楚地描述了值型別和引用型別在託管堆中的關係 越界檢查 陣列初始化器 四種寫法 string names new string var dogs new string var cats new string datas 陣列型別必須維數相同,...

Clr via C 讀書筆記 Cp10屬性

屬性的本質就是方法,只是看起來像字段罷了 就是一般屬性 字段一般要private,然後通過設定訪問方法 訪問器來訪問 屬性是方法語法變種 getset不一定要訪問支援字段 編譯的時候會自動生成對應的方法和對映關係 可以為以後建立複雜一點的屬性做好佔位,隨時更換。作者不喜歡自動屬性 作者甚至不喜歡屬性...

Clr via C 讀書筆記 Cp12泛型

generic system.collections.generic 開放型別,封閉型別 每個封閉型別都有自己的靜態成員 新的型別派生自泛型型別派生的那個類 實參指定和派生層次沒有關係 使用using和區域性隱式型別來解決 了解就可以了 擁有泛型的那些好處 類似泛型介面 不變數 泛型型別引數不能更改...