when to use @ in c#?
我只在本地路径中使用@符号,但什么时候使用@呢?
在字符串前使用@可避免转义特殊字符。
来自msdn的信息:
The advantage of @-quoting is that
escape sequences are not processed,
which makes it easy to write, for
example, a fully qualified file name:@"c:\Docs\Source\a.txt" // rather
than"c:\\Docs\\Source\\a.txt"
在任何你不想让事物的默认意义持续存在的地方,你都可以使用@。例如,@class将使类成为标识符。@bool将使bool成为标识符而不是关键字。
您知道@before字符串的用法。它用于表示将字符串的所有文本逐字带出,而不专门处理字符串中的任何字符。
编辑:是的,另一件事是,
有关详细信息,请参阅此链接。
字符串常数
c中字符串文字之前的
您将看到文件路径等使用的这种语法,因为让编译器忽略路径中的反斜杠很方便,而不必对它们进行双重转义,例如。
1 | var s = @"c:\Some\File\Path.txt"; |
读起来比
1 | var s ="c:\\Some\\File\\Path.txt"; |
保留词
您还可以在标识符前面加上
如果要使用关键字作为变量名
1 | string @string ="Hi"; |
可以在字符串前面加上@符号,以避免键入2个反斜杠来表示一个反斜杠。这就是为什么它经常用于本地路径的原因,因为它节省了一些输入,并且简化了稍后阅读时看到的内容。当你有一堆双引号和其他转义字符时,也就是特殊字符——这时你需要@符号。当您使用@符号时,请确保在您表示反斜杠时只放一个反斜杠。使用@时,要使用双引号字符,请使用两个双引号而不是反斜杠双引号。
1 | String path ="C:\\path\\to\\my\\file"; |
VS
1 | String path = @"C:\path\to\my\file"; //@ says one backslash is enough |
下面是另一个例子:
1 | String quotation ="He said, "Wow!""; //backslashes say not to end string |
VS
1 | String quotation = @"He said,""Wow!"""; //need a different method of denoting double quote |