1、自動屬性的增強
1.1、自動屬性初始化 (initializers for auto-properties)
c#4.0下的果斷實現不了的。
c#6.0中自動屬性的初始化方式
只要接觸過c#的肯定都會喜歡這種方式。真是簡潔方便呀。
1.2、唯讀屬性初始化getter-only auto-properties
先來看一下我們之前使用的方式吧
public class customer再來看一下c#6.0中public customer(string firstname,string lastname)
}
public class customer和第一條自動屬性初始化使用方式一致。="aehyok";
public string lastname ="kris";
}
2、expression bodied function
members
2.1 用lambda作為函式體expression bodies on method-like members
public point move(int dx, int dy) => new point(x + dx, y + dy);再來舉乙個簡單的例子:乙個沒有返回值的函式
public void print() => console.writeline(firstname + " " + lastname);2.2、lambda表示式用作屬性expression bodies on property-like function members
public override string tostring()現在c#6中
public class user3、引用靜態類using static在using中可以指定乙個靜態類,然後可以在隨後的**中直接使用靜態的成員public string lastname
public override string tostring() => string.format("——", firstname, lastname);
public string fullname => firstname + " " + lastname;
}
4、空值判斷null-conditional operators
直接來看**和執行結果
通過結果可以發現返回的都為null,再也不像以前那樣繁瑣的判斷null勒。
5、字串嵌入值
在字串中嵌入值
之前一直使用的方式是
現在我們可以簡單的通過如下的方式進行拼接
6、nameof表示式nameof expression
s 在方法引數檢查時,你可能經常看到這樣的**(之前用的少,這次也算學到了)
public static void addcustomer(customer customer)裡面有那個customer是我們手寫的字串,在給customer改名時,很容易把下面的那個字串忘掉,c#6.0 nameof幫我們解決了這個問題,看看新寫法}
public static void addcustomer(customer customer)7、帶索引的物件初始化器index initializers直接通過索引進行物件的初始化,原來真的可以實現}
通過這種方式可以發現字典中只有三個元素,所以也就只有這三個索引可以訪問額,其他型別的物件和集合也是可以通過這種方式進行初始化的,在此就不進行一一枚舉了。
8、異常
過濾器 (exception filters)
先來看乙個移植過來的方法
try;}在微軟的文件中還給出了另一種用法,這個異常會在日誌記錄失敗時拋給上一層呼叫者catch (argumentnullexception e)
}
private static bool log(exception e)9、catch和finally 中的 await —— await in catch and finally blocks在c#5.0中,await關鍵字是不能出現在catch和finnaly塊中的。而在6.0中static void main(string args)
catch (exception e)
}console.readline();
}
try10、無引數的結構體建構函式catch (resourceexception e)
finally
—— parameterless constructors in structs
c 6 0新特性(一)
接近年底了,基本上沒什麼活了,就學點新東西,就想著了解下c 6.0的新特性。在code project上看到了一篇不錯的文章,就準備翻譯一下,順便照著學習學習。廢話不多說,直奔主題。眾所周知,c 6.0 是在visual studio 2015中引入的。在其他的幾個版本中同樣引入一些特性,比如在c ...
c 6 0新特性(一)
接近年底了,基本上沒什麼活了,就學點新東西,就想著了解下c 6.0的新特性。在code project上看到了一篇不錯的文章,就準備翻譯一下,順便照著學習學習。廢話不多說,直奔主題。眾所周知,c 6.0 是在visual studio 2015中引入的。在其他的幾個版本中同樣引入一些特性,比如在c ...
C 6 0 新特性 二
有過正確實現結構經驗的所有 net 開發人員無疑都為乙個問題所困擾 需要使用多少語法才能使型別固定不變 為 net 標準建議的型別 此問題實際上是唯讀屬性存在的問題 定義為唯讀的支援字段 建構函式內支援欄位的初始化 屬性的顯式實現 而非使用自動屬性 返回支援欄位的顯式 getter 實現 所有這一切...