標籤:
VS2015 C#6.0 中的那些新特性
VS2015在自己機器上確實是裝好了,(全部安裝的話,在Java SE 開發套件 會卡頓很長時間,我直接關閉,然後重啟電腦,重新修複安裝搞定),
想來體驗一下跨平台的快感,結果被微軟狠狠的來了一棒子了,裝好了還是沒什麼用,應該還需要裝Xarmain外掛程式,配置一些參數吧,
由於這塊之前從未接觸過,想了想還是先不把時間繼續浪費在這裡了,於是乎來體驗一下新特性了。
參考資料:
1:CHS-WhatsNewinC# 6.0(微軟視頻) 連結:http://pan.baidu.com/s/1kTjLyjt 密碼:v6mr
2:VS2015CSharp6.0(英文文檔) 連結:http://pan.baidu.com/s/1eQsddtC 密碼:kvg1
1、自動屬性的增強
1.1、自動屬性初始化 (Initializers for auto-properties)
C#5.0下的果斷實現不了的。
C#6.0中自動屬性的初始化方式
1.2、唯讀屬性初始化Getter-only auto-properties
先來看一下我們之前使用的方式吧
再來看一下C#6.0中
和第一條自動屬性初始化使用方式一致。
2、引用靜態類Using Static
在Using中可以指定一個靜態類,然後可以在隨後的代碼中直接使用靜態成員
3、字串嵌入值
在字串中嵌入值,之前一直使用的方式是
現在我們可以簡單的通過如下的方式進行拼接
4、Expression bodied function members
4.1 用Lambda作為函數體Expression bodies on method-like members
4.2 用Lambda運算式用作屬性Expression bodies on property-like function members
5、帶索引的對象初始化器Index initializers
6、空值判斷Null-conditional operators
7、nameof運算式nameof expressions
在方法參數檢查時,你可能經常看到這樣的代碼(之前用的少,這次也算學到了)
裡面有那個Point是我們手寫的字串,在給Point改名時,很容易把下面的那個字串忘掉,C#6.0 nameof幫我們解決了這個問題,看看新寫法
8、異常過濾器 (Exception filters)
先來看一個移植過來的方法
移植過來的方法
在微軟的文檔中還給出了另一種用法,這個異常會在日誌記錄失敗時拋給上一層調用者
微軟的文檔 處理異常
9、catch和finally 中的 await —— Await in catch and finally blocks
在C#5.0中,await關鍵字是不能出現在catch和finnaly塊中的。而在6.0中
C# 6.0 await
VS2015 C#6.0