在方法声明中参数名称之前'@'char的含义是什么?

ibu*_*kov 15 c# .net-3.5

可能的重复:
变量名前面的@符号在C#中是什么意思?
C#中变量名中@字符的用法/含义是什么?

嗨,

我有一个简单的问题.在方法声明中参数名称之前'@'char的含义是什么?如下:

protected void Method1(Type1 @arg1, Type2 arg2)
...
Run Code Online (Sandbox Code Playgroud)

我使用c#和.net 3.5.

谢谢.

Tim*_*oyd 20

它允许保留字用作标识符.它通常由代码生成器使用,代码生成器可能使用来自具有与目标语言不同的关键字的系统的源名称,例如表名和sproc参数名.

  • @BoltClock不,不是,但代码生成器不知道.代码生成器通常将@符号放在所有标识符的前面. (2认同)

And*_*row 8

这是一种转义标识符的方法.

例如,以下两个是等效的:

protected void Method1(Type1 @arg1, Type2 arg2)
protected void Method1(Type1 arg1, Type2 arg2)
Run Code Online (Sandbox Code Playgroud)

@如果您需要在关键字后面命名标识符,那么它才真正有用.如果没有@:

protected void Method1(Type1 @class, Type2 arg2)