考虑:string newline = "\r\n";Console.WriteLine($"Hello without at{newline}how are you?");Console.WriteLine($"Hello with at{@newline}how are you?");两行的输出是相同的。换行符始终打印为换行符。Hello without athow are you?Hello with athow are you?那么我什么时候需要花括号内的at 符号呢?
2 回答
FFIVE
TA贡献1797条经验 获得超6个赞
$"Hello { myValue }"
是 C#6 中引入的内插字符串。在您的情况下,这相当于调用String.Format("Hello {0}", myValue)
.
@
当您的变量与关键字同名时需要逐字 ( ) ,而据我所知,newline
这不是。但是,以下会导致编译器错误:
String.Format("Hello {0}", if)
虽然这不会:
String.Format("Hello {0}", @if)
这里逐字告诉编译器这if
是一个变量的名称,而不是if
-关键字。
所以你不需要逐字逐句,因为newline
不是关键字。或者换句话说,您的代码等效于:
Console.WriteLine("Hello with at{0}how are you?", @newline);
这是逐字逐句的有效(即使是多余的)用法。
有关更多信息,请参阅有关 string-interpolation的文档。
- 2 回答
- 0 关注
- 171 浏览
添加回答
举报
0/150
提交
取消