考虑:
string newline = "\r\n";
Console.WriteLine($"Hello without at{newline}how are you?");
Console.WriteLine($"Hello with at{@newline}how are you?");
这两行的输出是相同的。换行总是作为换行打印。
Hello without at
how are you?
Hello with at
how are you?
那么我什么时候需要花括号内的@符号?
最佳答案
$"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);
这是逐字逐句的有效(即使是多余的)用法。
有关更多信息,请参阅 documentation about string-interpolation .
关于c# - 字符串插值 - 花括号内的@符号有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52111891/