C#6.0
阿新 • • 發佈:2020-07-19
C#6.0
匯入靜態類
我們可以使用using static 名稱空間.靜態類
來匯入要使用的靜態類,後續使用時就可以像本地類一樣的使用了,例如:
//匯入Math靜態類
using static System.Math;
//使用時就不需要再指定名稱空間了,可以直接類名.靜態方法()來使用
int n = (int)Math.Ceiling(0.01m);
異常過濾器
異常過濾器可以讓你在catch塊執行之前先進行一個條件判斷。
try { using (HttpClient client = new HttpClient()) { var response = await client.GetStringAsync("https://i.cnblogs.com/tags"); Console.WriteLine(response); } } catch (System.Net.Http.HttpRequestException ex) when (ex.Message.Contains("401")) { Console.WriteLine(ex.Message); }
自動屬性初始化
在C#6.0
之前是沒辦法給自動屬性進行初始化,只能在物件建立成功後手動賦值。現在可以直接在自動屬性後面加上初始值或初始化表示式。
private static int _defaultGender = 1;
//使用字面量設定初始值
public string Name { get; set; } = "張三";
//使用初始化表示式設定初始值
public string Gender { get; set; } = _defaultGender == 1 ? "男" : "女";
Null條件運算子
Null條件運算子使null
.
替換為?.
Null合併運算子使結果為null
時可以設定預設值。使用??
//如果person是null,則將變數name賦值為null,否則將Name的屬性值賦值給該變數。
string name=person?.Name;
//如果姓名為null時則預設姓名為張三
string name = person?.Name ?? "張三";
字串內插
字串內插功能可以在字串中嵌入表示式。使用$
作為字串的開頭,並使用{
和}
之間的表示式來計算結果。
string name = "張三"; string summary = $"hi,大家好,我叫:{name}..";
字串內插就是語法糖,內部實際上是使用了
string.Format
方法。
nameof表示式
nameof
表示式可生成變數、型別或成員的名稱作為字串常量。
nameof
表示式在編譯時進行求值,在執行時無效。
string name = "張三";
string summary = $"{nameof(name)}={name}";
//output:name=張三
Expression-bodied函式成員
之前只讀屬性和方法都是放在一個語句塊中的,現在可以改成Expression-bodied
成員。
//只讀屬性
public string Name => "張三";
//方法
public void Hello() => Console.WriteLine("hello world");