你如何在C#中使用这个@?

时间:2010-12-10 03:45:17

标签: c#

simpleSound = new SoundPlayer(@"c:\Windows\Media\chimes.wav");

为什么以及@ for是什么?

7 个答案:

答案 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符号(@)只是忽略转义字符。