C#前缀参数名称与@

可能重复:
在C#中,variables名之前的@符号是什么意思?

重复:

在C#中,variables名之前的@符号是什么意思?

有时我会看到一些C#代码,其中一个方法参数的前缀是@,如下所示:

public static void SomeStaticMethod( SomeType @parameterName ) { } 

这是什么意思 ? 它有一些重要的特殊含义吗?

我在NHibernate中创build一个EventListener,当我让VS.NET生成接口方法时,它会生成如下所示的OnPostLoad方法:

  public class PostLoadEventListener : IPostLoadEventListener { public void OnPostLoad( PostLoadEvent @event ) { } } 

为什么是这样 ?

试着做一个名为class的variables,看看会发生什么 – 你会注意到你得到一个错误。

这使您可以使用保留字作为variables名称。

不相关的,你还会注意到以@为前缀的string – 这不是一回事。

 string says = @"He said ""This literal string lets me use \ normally and even line breaks""."; 

这允许你使用string的'literal'值,这意味着你可以有新的行或字符没有转义等。

@前缀允许你在C#中使用类,接口,事件等保留字作为variables名。 所以你可以做

 int @int = 1 

事件是一个C#关键字,@是一个转义字符,允许您使用关键字作为variables名称。