可能重复:
What does the @ symbol before a variable name mean in C#?重复:
有时候我会看到一些C#代码,其中一个方法参数以@为前缀,如下所示:
public static void SomeStaticMethod( SomeType @parameterName ) { }
这是什么意思?它有一些重要的特殊意义吗?
我在NHibernate中创建一个EventListener,当我让VS.NET生成接口方法时,它生成如下的OnPostLoad方法:
public class PostLoadEventListener : IPostLoadEventListener
{
public void OnPostLoad( PostLoadEvent @event )
{
}
}
为什么会这样?
答案 0 :(得分:96)
尝试制作一个名为 class 的变量,看看会发生什么 - 你会发现自己收到错误。
这允许您使用保留字作为变量名。
不相关,你也会注意到以@为前缀的字符串 - 这不是一回事......
string says = @"He said ""This literal string lets me use \ normally
and even line breaks"".";
这允许你使用字符串的'literal'值,这意味着你可以使用没有转义的新行或字符等...
答案 1 :(得分:36)
@前缀允许您在C#中使用类,接口,事件等保留字作为变量名。所以你可以做到
int @int = 1
答案 2 :(得分:19)
event是一个C#关键字,@是一个转义字符,允许您将关键字用作变量名。