可能重复:
.NET前面的字符串前面的@是什么?
我在C#学习书中找到了这个
DirectoryInfo dir = new DirectoryInfo(key.Key.ToString() + @":\");
Run Code Online (Sandbox Code Playgroud)
然而,这本书没有解释'@'符号的用途.我尝试搜索MSDN C#操作符,但没有在那里列出.我可以猜测它允许开发人员不必转义'\'或者它是否允许没有任何转义序列?
这是什么,我为什么要使用@":\"而不是":\\"?
谢谢您的帮助
编辑:有关类似问题,请参阅下面的评论
Mar*_*ius 143
这意味着按字面解释字符串(也就是说,如果使用@前缀,则无法转义字符串中的任何字符).它可以在可以使用的情况下增强可读性.
例如,如果您正在使用UNC路径,则:
@"\\servername\share\folder"
Run Code Online (Sandbox Code Playgroud)
比这更好:
"\\\\servername\\share\\folder"
Run Code Online (Sandbox Code Playgroud)
Nei*_*l N 64
这也意味着您可以使用保留字作为变量名
假设你想要一个名为class的类,因为class是保留字,你可以改为调用你的类类:
IList<Student> @class = new List<Student>();
Run Code Online (Sandbox Code Playgroud)
MrE*_*yes 14
用@前缀字符串表示它应该被视为文字,即没有转义.
例如,如果您的字符串包含路径,通常会执行此操作:
string path = "c:\\mypath\\to\\myfile.txt";
Run Code Online (Sandbox Code Playgroud)
@允许你这样做:
string path = @"c:\mypath\to\myfile.txt";
Run Code Online (Sandbox Code Playgroud)
注意缺少双斜线(逃逸)
作为旁注,您还应该记住,"转义"意味着"使用反斜杠作为特殊字符的指示符".你可以把一行结尾放在一个字符串中,例如:
String foo = "Hello\
There";
Run Code Online (Sandbox Code Playgroud)