0

可能重复:
C# 中字符串前面的@ 是什么?

这是我长期以来一直质疑但从未费心去弄清楚的问题。当我下载第三方库时,我经常看到在字符串@之前使用符号的字符串分配。

string myString = @"Some text";

但是,如果我只是这样做,似乎绝对没有区别

string myString = "Some text";

那么在@做什么呢?

4

4 回答 4

7

它表示逐字字符串文字,并允许您不必转义某些字符:

string foo = @"c:\some\path\filename.exe";

与:

string foo = "c:\\some\\path\\filename.exe";
于 2012-09-13T18:32:09.193 回答
2
string reason = @"this string literal mea\ns something different with an @ in front than without";

如果没有@,上面的字符串将有一个换行符,而不是单词“means”中的'n'。使用@,“意思”这个词看起来就像你看到的一样。此功能对于文件路径之类的内容特别有用:

string path = @"C:\Users\LookMa\NoDoubleSlashes.txt";
于 2012-09-13T18:32:19.583 回答
1

它是逐字字符串文字。它可以让你做类似的事情,@"C:\"而不是"C:\\",并且在正则表达式和文件路径中特别有用,因为这些通常使用编译器不应该解析的反斜杠。有关更多信息,请参阅文档

于 2012-09-13T18:32:59.177 回答
0

在这种情况下没有区别。'@' 所做的只是允许您省略转义反斜杠。如果您使用 '@' 并希望在字符串中包含双引号,则需要将双引号加倍。

于 2012-09-13T18:32:51.810 回答