说说什么是逐字字符串
在普通字符串中,反斜杠字符是转义字符。而在逐字字符串(Verbatim Strings)中,字符将被编程器按照原义进行解释。使用逐字字符串只需在字符串前面加上 @ 符号。
// 逐字字符串:转义符
var filename = @"c:\temp\newfile.txt";
Console.WriteLine(filenaame);
// 逐字字符串:多行文本
var multiLine = @"This is a
multiline paragraph.";
Console.WriteLine(multiLine);
// 非逐字字符串
var escapedFilename = "c:\temp\newfile.txt";
Console.WriteLine(escapedFilename);
输出结果:
c:\temp\newfile.txt
This is a
multiline paragraph.
c: emp
ewfile.txt
逐字字符串中唯一不被原样解释的字符是双引号。由于双引号是定义字符串的关键字符,所以在逐字字符串中要表达双引号需要用双引号进行转义。
var str = @"""I don't think so"", he said.";
Console.WriteLine(str);
输出结果:
"I don't think so", he said.
在逐字字符串中也可以 $ 符号实现字符串内插值。
Testing \n 1 2 3
输出结果:
Testing \n 1 2 3