simpleSound = new SoundPlayer(@"c:\Windows\Media\chimes.wav");
为什么以及@ for是什么?
答案 0 :(得分:8)
这是一个文字字符串。而不是必须通过将其中两个“\”转义为“\”,编译器将字符串“原样”解释。
假设您要将以下文字打印到屏幕上:"Hello \t world"
。
如果您只是Console.WriteLine("Hello \t world")
,那么您的输出将是:
Hello world
注意标签。那是因为\ t是一个标签。如果你使用文字,就像这样:
Console.WriteLine(@"Hello \t world")
那么你的输出将是:
"Hello \t world"
答案 1 :(得分:3)
这是一个逐字字符串。逐字字符串允许您包含特殊字符,如\,“等,而不使用转义序列。
答案 2 :(得分:2)
字符串前面的@符号表示将反斜杠视为普通字符,而不是特殊字符的开头(例如换行符)。
答案 3 :(得分:2)
它标识string literal。它允许您在字符串中使用特殊字符\
而不转义它。
答案 4 :(得分:0)
"c:\\my\\file.txt"
可以@"c:\my\file.txt"
这意味着您的\ n和\ t或其他任何内容也不会被处理。
答案 5 :(得分:0)
@
的另一个用法是,如果您想将关键字用作变量名称(即使它不是一个好主意),您可以将它放在关键字前面。例如:
public int @object = 1;
答案 6 :(得分:0)
在分配字符串值之前定义@符号将防止在C#中加倍反斜杠(\)。 at符号(@)只是忽略转义字符。