實(shí)際上是C# 6.0對string.Format的改進(jìn)
將字符串文本標(biāo)識為內(nèi)插字符串($)
根據(jù)微軟的例子來看:
using System;
public class Example
{
public static void Main()
{
string name = "John";
string greeting = $"Hello, {name}!";
Console.WriteLine(greeting);
}
}
相當(dāng)于原先的string.Format這種必須使用占位符,極容易出錯:
string name = "John";
string str = string.Fromat("Hello,{0}!",name);
而使用$則不容易出現(xiàn)錯誤当纱,可以這樣寫:
string name = "John";
string str = $"Hello,{name}!";
update:2017-7-20
新增語法糖:(?.)
這也是C#6.0的語法前痘,這叫Null-Conditional Operator(null條件運(yùn)算符)
我們經(jīng)常需要判斷對象是否為null(不判斷呢就會報異常System.NullReferenceException之類的)义钉,我們一般像這樣:
List<string> list = null;
if (list != null)
{
string[] strArr = list.ToArray();
}
或者這樣
List<string> list = null;
string[] strArr = (list != null ? list.ToArray() : null);
使用這個null條件運(yùn)算符就可以這樣簡單的完成這件事了
List<string> list = null;
string[] strArr = list?.ToArray();
解釋一下,當(dāng) list 為 null 時就不進(jìn)行后面的ToArray(),返回null猿推,當(dāng) list 不為 null 就ToArray();
這里要注意一下莺葫,前面strArr這個得是個可null的值
既然說到這個剔桨,就來多個(??)
?? 運(yùn)算符稱作 null 合并運(yùn)算符。 如果此運(yùn)算符的左操作數(shù)不為 null徙融,則此運(yùn)算符將返回左操作數(shù)洒缀;否則返回右操作數(shù)。
演示一下:
int? num = null;//前面設(shè)定了個可空的int,后面想null時變?yōu)?就好
int num1 = num ?? 0;