Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#在参数名称前面加上@_C# - Fatal编程技术网

C#在参数名称前面加上@

C#在参数名称前面加上@,c#,C#,可能重复: 重复: 有时我会看到一些C#代码,其中方法参数的前缀是@,如下所示: public static void SomeStaticMethod( SomeType @parameterName ) { } public class PostLoadEventListener : IPostLoadEventListener { public void OnPostLoad( PostLoadEvent @event ) { } } 这是什么意思?它有什

可能重复:

重复:

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

public static void SomeStaticMethod( SomeType @parameterName ) { }
public class PostLoadEventListener : IPostLoadEventListener
{
    public void OnPostLoad( PostLoadEvent @event )
    {

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

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

public static void SomeStaticMethod( SomeType @parameterName ) { }
public class PostLoadEventListener : IPostLoadEventListener
{
    public void OnPostLoad( PostLoadEvent @event )
    {

    }
}

这是为什么?

尝试创建一个名为class的变量,看看会发生什么——您会注意到出现错误

这允许您使用保留字作为变量名

不相关的,您还将注意到前缀为@的字符串——这不是一回事

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

这允许您使用字符串的“literal”值,这意味着您可以使用新行或字符而不使用转义符等。

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

前缀允许您在C#中使用保留字,如类、接口、事件等作为变量名。所以你可以

int @int = 1

这可能是个坏主意…我知道我总是避免这样做,但这是一个可用的功能。德文:有些情况下,你真的无法避免它,例如,与用其他语言编写的程序集或以前版本的C#进行接口。但同时,当您无法预测该语言的未来版本中可能会引入哪些新关键字时,就有必要。。。毕竟,您可能有一个4.0之前的库,它使用“动态”作为符号名,否则您将无法从4.0应用程序完全访问它……因为C#1.0没有添加新的保留字,只有上下文关键字。对于dynamic,情况也是如此。这是一个经常出现的问题,我们可以把它放到一个特定于标签的FAQ中,查看相关的uservoice票证:这个例子会让我做噩梦。哈哈!我知道。我无情地搜寻这样的代码并将其吹走!也许这个例子应该更新为int@double=(int)(1.0/0.0);。那么至少整个事情是痛苦的。我熟悉在字符串前面加@:),但在变量名前面加前缀对我来说是新的。无论如何,你的解释很清楚。我喜欢这个字符串交叉信息,可能对一些读者有用。