2011-03-12 86 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\"