1. 程式人生 > >【C#】C# in deep 筆記

【C#】C# in deep 筆記

tar 靜態類型 命名 htable 空類 blank 類型 img net

1. delegate and events

http://csharpindepth.com/Articles/Chapter2/Events.aspx

2. 顯式類型 和 隱式類型

技術分享圖片

3. 靜態類型, 動態類型

靜態類型, 編譯時候已經定義好的類型.

動態類型: 編譯時候通過動態去檢查的類型.

4. 強弱類型

數組是強類型的. 所以不可能將string[]中的元素設置成filestream.

system.collections命名空間中的為弱類型. 比如 ArrayList/Hashtable

5. 值類型和引用類型

用現實舉例來說, 如果你在讀一份報紙, 你想讓你的朋友也閱讀一份, 所以你去打印機那面打印了一份相同的報紙給你的朋友, 這就是值類型, 因為無論你在你的報紙上做什麽樣的更改註解, 都不會影響到你朋友的那份報紙. 但是如果你是在閱讀一個網頁, 你將網頁的URL分享給了你的朋友, 那麽你兩用的就是一個引用類型.

.net中大多數類型都是引用類型.

技術分享圖片

6. 裝箱 拆箱

看個栗子:

int i = 5;

object o = i;

int j = (int)o;

解釋一下這個過程. 首先i是值類型的一個變量. 將i賦值成5, 然後將i賦值給o的操作, 實際上是在內存中復制一個i的副本, 將i裝箱成一個引用類型, 賦值給o. 然後將o拆箱轉換成int值類型賦值給j.

7 . 歸納不同階段的C#的特性.

C#1

靜態的

C#2

泛型以及泛型集合, 受限的委托, 可空類型(int? x = null)

C#3

匿名類型, 隱式類型, 擴展方法, lambda表達式

C#4

受限的泛型斜變, 動態類型(dynimic)

【C#】C# in deep 筆記