內插字元串($) 實際上是C# 6.0對string.Format的改進,將字元串文本標識為內插字元串($)根據微軟的例子來看: 相當於原先的string.Format這種必須使用占位符,極容易出錯: 而使用$則不容易出現錯誤,可以這樣寫: 新增語法糖:(?.) 這也是C#6.0的語法,這叫Null ...
內插字元串($)
實際上是C# 6.0對string.Format的改進,將字元串文本標識為內插字元串($)
根據微軟的例子來看:
1 using System; 2 3 public class Example 4 { 5 public static void Main() 6 { 7 string name = "John"; 8 string greeting = $"Hello, {name}!"; 9 Console.WriteLine(greeting); 10 } 11 }
相當於原先的string.Format這種必須使用占位符,極容易出錯:
1 string name = "John"; 2 string str = string.Fromat("Hello,{0}!",name);
而使用$則不容易出現錯誤,可以這樣寫:
1 string name = "John"; 2 string str = $"Hello,{name}!";
新增語法糖:(?.)
這也是C#6.0的語法,這叫Null-Conditional Operator(null條件運算符)
我們經常需要判斷對象是否為null(不判斷呢就會報異常System.NullReferenceException之類的),我們一般像這樣:
1 List<string> list = null; 2 if (list != null) 3 { 4 string[] strArr = list.ToArray(); 5 }
或者這樣:
1 List<string> list = null; 2 string[] strArr = (list != null ? list.ToArray() : null);
使用這個null條件運算符就可以這樣簡單的完成這件事了
1 List<string> list = null; 2 string[] strArr = list?.ToArray();
解釋一下,當 list 為 null 時就不進行後面的ToArray(),返回null,當 list 不為 null 就ToArray();
這裡要註意一下,前面strArr這個得是個可null的值
null合併運算符(??)
?? 運算符稱作 null 合併運算符。 如果此運算符的左操作數不為 null,則此運算符將返回左操作數;否則返回右操作數。
演示一下:
1 int? num = null;//前面設定了個可空的int,後面想null時變為0就好 2 int num1 = num ?? 0;