可能重复:
C# 中字符串前面的@ 是什么?
为什么我们使用
我正在使用Windows 应用程序@
来替换\
另一个字符串string.replace(@"\","$$")
C#
可能重复:
C# 中字符串前面的@ 是什么?
为什么我们使用
我正在使用Windows 应用程序@
来替换\
另一个字符串string.replace(@"\","$$")
C#
字符串文字前面的@
使其成为逐字字符串文字,因此反斜杠\
不需要加倍。您可以使用"\\"
代替来@"\"
获得相同的效果。
因为如果你不这样做,你就不得不\
带着\\
@
习惯于所谓的逐字字符串
在 C# 中,您可以为字符串添加前缀@
以使其逐字显示,因此您无需转义特殊字符。
@"\"
等同于
"\\"
C# 语言规范2.4.4.5 字符串文字状态:
C# 支持两种形式的字符串文字:常规字符串文字和逐字字符串文字。
常规字符串文字由用双引号括起来的零个或多个字符组成,如 "hello",并且可能包括简单的转义序列(如制表符的 \t)以及十六进制和 Unicode 转义序列。
逐字字符串文字由一个 @ 字符后跟一个双引号字符、零个或多个字符以及一个结束双引号字符组成。一个简单的例子是@"hello"。在逐字字符串文字中,分隔符之间的字符被逐字解释,唯一的例外是引号转义序列。特别是,简单的转义序列以及十六进制和 Unicode 转义序列不会在逐字字符串文字中进行处理。逐字字符串文字可能跨越多行。
使用字符的逐字字符串文字@
使得在实用上转义几乎所有字符变得更容易,否则您必须使用\
字符串中的字符单独转义。
注意:"
即使使用逐字模式,字符仍然需要转义。
所以我会用它来节省时间,不必通过一个长字符串来转义所有需要转义的必要字符。
因为反斜杠被视为转义字符,如果不使用“@”,您将收到“无法识别的转义序列”错误。使用“@”告诉编译器忽略转义字符。这可能会有所帮助。