11

从 ReSharper,我知道

var v = @"something";

使 v 称为逐字字符串。这是什么以及使用它的常见场景是什么?

4

2 回答 2

17

在逐字字符串中,转义序列(例如"\n"换行符)将被忽略。这有助于您键入包含反斜杠的字符串。

字符串也可以扩展到多行,例如:

var s = @"
line1
line2";

该字符串的显示方式与您在源代码中键入的方式相同,带有换行符,因此您不必担心缩进、换行等。

要在逐字文字中使用引号,只需将它们加倍:

@"This is a string with ""quotes""."
于 2013-05-19T13:34:45.883 回答
13

这意味着不需要转义特殊字符,因为您通知编译器期望特殊字符并忽略它们。一个常见的用例可能是指定一个连接字符串:

string sqlServer = @"SERVER01\SQL"; 

这是完全有效的,而不是在正常使用中反斜杠被视为转义字符。

于 2013-05-19T13:34:49.487 回答