2011-03-12 107 views
3

我刚去写行...'@'在c#中做什么?

if (!e.PeriodicData.Keys.Contains(process)) 
{ 
} 

,但是,做了一个错字“!”然后点击“@”。例如

if (@e.PeriodicData.Keys.Contains(process)) 
{ 
} 

我曾期待智能触发器可以触发,但事实并非如此。所以我编译并成功编译。它不是operator,那么什么是“@”?它有什么作用?

回答

9

在这种情况下,它是一个有效的名称。如果您想使用关键字作为变量名称(例如@class),则会使用它。

参见:What does placing a @ in front of a C# variable name do?

+2

话虽这么说 - 不这样做。使用关键字作为变量名是非常混乱的。 – Joe 2011-03-12 01:52:17

+1

在某些情况下,它是不可避免的 - 特别是MVC的HtmlHelpers采用HTML属性。 – 2011-03-12 01:56:09

+0

像这样的答案是一个非常好的信号,你应该投票决定将问题作为重复来解决。我不确定你为什么没有;你似乎没有在其他问题的答案中给出的信息之外添加任何信息。 – 2011-03-12 08:49:00

6

在这种情况下,它是刚开变量e。它相当于e

如果您想调用变量class,则使用var前的@符号。将保留字用作变量。

var @class = 1; 
var @virtual = 2; 
var @return = 3; 

对于字符串它使用的文字,例如:

"C:\\test\\example\\" 

是相当于

@"C:\test\example\"