C#前缀参数名称@

时间:2009-06-24 14:19:31

标签: c#

  

可能重复:
  What does the @ symbol before a variable name mean in C#?

     

重复:

     

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 )
    {

    }
}

为什么会这样?

3 个答案:

答案 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#关键字,@是一个转义字符,允许您将关键字用作变量名。