“@”在c#中意味着什么
可能重复:
何时在c#中使用@?
Fe 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";
有两种类型的字符串文字,常规和逐字。 @符号使其成为逐字字符串文字。
MSDN:字符串文字(C#)
这意味着不需要在这样的字符串中转义字符。
因此,如果要编写c:\ Windows的路径,可以将其写为
string path = "c:\\Windows"; // Note escaped '\'
要么
string path = @"c:\Windows"; // '\' need not be escaped
逐字字符串文字以@开头,也用双引号括起来。 例如:
@"good morning" // a string literal
尼克,请查看示例上方的最后几行以获取更多信息。 http://msdn.microsoft.com/en-us/library/362314fe.aspx
在C和C ++中,string有一些称为“转义字符”的特殊字符。 例如\
, &
和"
本身就是逃脱角色!
以非常正常的方式,您可以打印如下语句:
南希说你好世界! &微笑
你必须像下一个设置你的字符串
string str = "Nancy said Hello World! \& smiled.";
但是微软的人在C#编译器中创建了一个新的酷function,所以你可以通过在任何字符串之前添加@
来摆脱处理转义字符的麻烦,编译器将自己处理所有的转义字符。 对于最后一个示例,您可以在C#中使用下一个:
string str = @"Nancy said Hello World! & smiled.";
用于字符串文字。 它将引号(“)中的字符串标记为值,而不对该字符串中的符号应用任何解释。
它允许你有一个带有\
delimiter的字符串。 @"C:\A\b\c\d\e\f"
是合法的。