C#語法糖($)(?.)(??)


內插字符串($)

實際上是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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM