1.@
(1)限定字符串,让字符串的转义字符不转义
String path = "D://test.txt";
String path = @"D:/test.txt";
(2)字符串跨行
string str = "wcc\ntest";
string str = @"wcc
test";
2.$
相当于string.format()的简化
Console.WriteLine(string.format("this is a {0}", "cat"));
string cat = "cat";
Console.WriteLine($"this is a {cat}");
注:“{{”是“{”的转义字符
3.?
(1)可空类型
string str = null; //警告
string? str = null; //正确
(2)三元运算符
var result = 2 > 1 ? value1 : value2;
// result = true
// 若前面的布尔表达式为true,则result = value1,否则result = value2
(3)空合并运算符
var result = a ?? b;
// 若a != null, 则reslut = a。否则reslut = b
(4)在实体变量后加?
var a = "test";
var result = a?;
// a不为null时,result = a
// a为null时,result = null
(5)null检查运算符 "?."
var result = list.FirstOrDefault()?.x;
// 若对象为null,则不进行后面的运算,直接返回null
4.Nullable<T>.HasValue
可空类型的HasValue属性。当变量的值是有效值时,为true。否则为false。