實(shí)際上是C# 6.0對(duì)string.Format的改進(jìn)
將字符串文本標(biāo)識(shí)為內(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這種必須使用占位符,極容易出錯(cuò):
string name = "John";
string str = string.Fromat("Hello,{0}!",name);
而使用$則不容易出現(xiàn)錯(cuò)誤,可以這樣寫:
string name = "John";
string str = $"Hello,{name}!";
update:2017-7-20
新增語法糖:(?.)
這也是C#6.0的語法,這叫Null-Conditional Operator(null條件運(yùn)算符)
我們經(jīng)常需要判斷對(duì)象是否為null(不判斷呢就會(huì)報(bào)異常System.NullReferenceException之類的),我們一般像這樣:
List<string> list = null;
if (list != null)
{
string[] strArr = list.ToArray();
}
或者這樣
List<string> list = null;
string[] strArr = (list != null ? list.ToArray() : null);
使用這個(gè)null條件運(yùn)算符就可以這樣簡單的完成這件事了
List<string> list = null;
string[] strArr = list?.ToArray();
解釋一下,當(dāng) list 為 null 時(shí)就不進(jìn)行后面的ToArray(),返回null,當(dāng) list 不為 null 就ToArray();
這里要注意一下,前面strArr這個(gè)得是個(gè)可null的值
既然說到這個(gè),就來多個(gè)(??)
?? 運(yùn)算符稱作 null 合并運(yùn)算符。 如果此運(yùn)算符的左操作數(shù)不為 null,則此運(yùn)算符將返回左操作數(shù);否則返回右操作數(shù)。
演示一下:
int? num = null;//前面設(shè)定了個(gè)可空的int,后面想null時(shí)變?yōu)?就好
int num1 = num ?? 0;