2009-01-09 95 views

回答

519

@符號允許您使用保留字。例如:

int @class = 15; 

上述工作,在以下不會:

int class = 15; 
+17

與它有什麼不同,比如下劃線? – 2009-01-09 20:15:41

+66

使用@符號時,該名稱在程序集中記錄爲「class」,而下劃線則爲「_class」。因此,如果另一個.NET語言沒有將「class」定義爲保留字,則可以使用「class」這個名稱。 – 2009-01-09 20:23:43

+28

如果您使用@class屬性名稱,您可以像這樣訪問它:MyClass.class而不是MyClass._class – 2009-01-09 20:24:05

8

它允許你使用C#的關鍵字作爲變量。例如:

class MyClass 
{ 
    public string name { get; set; } 
    public string @class { get; set; } 
} 
298

符號@供應2個目的在C#:

首先,它可以讓你使用保留關鍵字作爲像這樣的變量:

int @int = 15; 

第二選項允許您指定一個字符串而不必轉義任何字符。例如將「\」字符是一個轉義字符所以通常你需要做到這一點:

var myString = "c:\\myfolder\\myfile.txt" 

或者你可以這樣做:

var myString = @"c:\myFolder\myfile.txt" 
50

重要的一點是,其他的答案忘了,是在CIL中將「@keyword」編譯爲「關鍵字」。因此,如果你有一個框架,例如F#,它需要你定義一個名爲「class」的屬性的類,你可以做到這一點。

這不是在實踐中很有用,但沒有它會阻止C#從某種形式的語言interop。

我通常看到它用於互操作,但爲了避免關鍵字限制(通常在局部變量名稱上,這裏是只有的作用)即ie。

private void Foo(){ 
    int @this = 2; 
} 

但我強烈勸阻!只要找到其他名稱,即使變量的「最佳」名稱是保留名稱之一。

相關問題