在String之前的C#'@'
可能重复:
什么是在.NET的string前的@
我在C#学习书中find了这个
DirectoryInfo dir = new DirectoryInfo(key.Key.ToString() + @":\");
但是这本书没有解释“@”符号是什么。 我试图searchMSDN C#运营商,但没有在那里列出。 我可以猜测,它允许开发人员不必逃避一个'\'或它允许没有任何转义序列?
这是什么,为什么我会使用@":\"
而不是":\\"
?
谢谢您的帮助
编辑:请参阅下面的评论类似的问题
这意味着字面解释string(即,如果使用@前缀,则不能转义string中的任何字符)。 在可以使用的情况下,它提高了可读性。
例如,如果您正在使用UNCpath,则:
@"\\servername\share\folder"
比这更好:
"\\\\servername\\share\\folder"
这也意味着你可以使用保留字作为variables名
说你想要一个名为类的类,因为类是一个保留字,你可以改为调用你的类类:
IList<Student> @class = new List<Student>();
用@前缀string表示应将其视为文字,即不能转义。
例如,如果你的string包含一个path,你通常会这样做:
string path = "c:\\mypath\\to\\myfile.txt";
@允许你这样做:
string path = @"c:\mypath\to\myfile.txt";
注意缺less双斜杠(转义)
作为一个侧面说明,你也应该记住,“逃避”的意思是“使用反斜杠作为特殊字符的指标”。 你可以把行尾放在一个string中,例如:
String foo = "Hello\ There";
这是什么,为什么我会用@“:\”而不是“:\”?
因为当你长时间的刺激很多时,你不需要全部逃脱。