在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"; 

这是什么,为什么我会用@“:\”而不是“:\”?

因为当你长时间的刺激很多时,你不需要全部逃脱。