可能重复:
变量名前的@符号在C#中是什么意思?重复:
有时我会看到一些C#代码,其中一个方法参数以@为前缀,如下所示:
public static void SomeStaticMethod( SomeType @parameterName ) { }
这是什么意思 ?它有一些重要的特殊含义吗?
我在NHibernate中创建一个EventListener,当我让VS.NET生成接口方法时,它生成如下的OnPostLoad方法:
public class PostLoadEventListener : IPostLoadEventListener
{
    public void OnPostLoad( PostLoadEvent @event )
    {
    }
}
为什么是这样 ?
Hug*_*are 111
尝试创建一个名为class的变量,看看会发生什么 - 你会发现你收到错误.
这允许您使用保留字作为变量名.
不相关的,你也会注意到以@为前缀的字符串 - 这不是一回事......
string says = @"He said ""This literal string lets me use \ normally 
    and even line breaks"".";
这允许你使用字符串的'literal'值,这意味着你可以有没有转义的新行或字符等...
Rad*_*Rad 43
@前缀允许您使用类,接口,事件等保留字作为C#中的变量名.所以你可以做到
int @int = 1
Tim*_*ter 20
event是一个C#关键字,@是一个转义字符,允许您使用关键字作为变量名.