可能重复:
What does placing a @ in front of a C# variable name do?
您好,
我讨好了Silverlight和RIA服务。在创建支持编辑的新域服务时,在域服务类(C#)中生成以下代码:
public void InsertClass(Class @class){
...
}
变量名中@
符号的含义是什么?
答案 0 :(得分:6)
class
是C#中的保留字,表示新类型。您不能拥有一个保留字的变量名,因此您可以使用@
来“转义”该符号。
AKA:
int int = 4; // Invalid
int @int = 4; // Valid
答案 1 :(得分:1)
@
用于必须具有变量名称且也是c#保留关键字的情况。在大多数情况下,可以避免(并且应该是因为它可能引起的混乱)。有时候这是不可避免的;例如在asp.net MVC中你已经将css类添加到你必须使用像这样的匿名类的元素
new {@class = "myCssClass" }
要渲染
... class="myCssClass" ...
没有办法绕过它。
答案 2 :(得分:1)
如果您尝试命名变量class
会发生什么,您认为? @
前缀允许您使用保留/关键字作为变量名称。
答案 3 :(得分:1)
以前回答here。
@符号允许您使用保留字。
答案 4 :(得分:1)
@
符号仅在变量名称的开头有效,用于允许保留关键字用作变量名称。
var @class = 12; // This will compile
var cl@ss = 12; // This will NOT compile
答案 5 :(得分:1)
如果要命名也是C#关键字的变量,则使用@符号。即,
var @abstract =“1234”;
会创建一个名为“@abstract”的字符串。如果你没有,你会得到一个编译错误。
此外 - 您可以在字符串前面使用@符号:
var myStr = @“C:\ MyDataFile.txt”;
这样,您不必在字符串中转义文字。通常你必须在C:
之后使用双\