可能重复:
何时在C#中使用@?
例如:string sqlSelect = @“SELECT * FROM Sales”。
这意味着将以下字符串解释为文字字面量。也就是说,字符串中的 \
实际上会作为输出中的 "\"
,而不是必须输入 "\\"
才能表示实际字符。
在使用字符串之前,它允许不同的字符串格式化规则。您不能使用反斜杠来指定特殊符号和""(双引号变成引号)。我发现这种格式对于正则表达式非常有用。
例子:
Console.WriteLine(@"\n""\/a"); // outputs \n"\/a
Console.WriteLine("\\n\"\"\\/a"); // outputs \n"\/a
你可能会在变量名前看到 @ 符号。这种情况下,它允许使用 C# 中的特殊关键字作为变量名。var @switch = 1;
var @if = "test";
这意味着在这样的字符串中不需要转义字符。
因此,如果您想写c:\Windows的路径,可以将其写为
string path = "c:\\Windows"; // Note escaped '\'
或者
string path = @"c:\Windows"; // '\' need not be escaped
\
,&
和"
本身就是转义字符!您需要设置字符串如下:Nancy Said Hello World! & smiled
string str = "Nancy said Hello World! \& smiled.";
但是,在微软公司中,C#编译器的开发人员推出了一个很酷的新功能,即在任何字符串前添加@
,编译器将自动处理所有的转义字符,从而省去了繁琐的手动处理过程。对于上面的例子,你可以在C#中像这样使用:
string str = @"Nancy said Hello World! & smiled.";
逐字字符串字面量以@开头,也用双引号括起来。例如:
@"good morning" // a string literal
它允许您在字符串中使用\
分隔符。 @"C:\A\b\c\d\e\f"
是合法的。
用于字符串字面量。它将引号(")内的字符串标记为该值,而不对该字符串中的符号应用任何解释。
Int32 new;
是无效的,但Int32 @new;
不是。 - moribvndvs