@在方法调用之前的用法

时间:2019-02-17 13:08:37

标签: c#

考虑这样的方法声明:

public void MethodName(string param){
       // method body
}

然后像这样调用它:

obj.@MethodName("some string");

@在方法名称之前有什么作用? 就像把它放在包含转义字符的字符串之前一样吗?

1 个答案:

答案 0 :(得分:12)

这用于允许您将保留字用作标识符,例如类名,委托和方法。例如:long

namespace ConsoleApp4
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            @long();
        }

        public static void @long ()
        {
            // Some logic here
        }
    }
}

删除@,它将无法编译。它不经常使用。

请注意,如果将long都更改为long2并删除第二个@,则代码将正常编译。因此,@的使用意味着您可以调用作为保留字的方法名称-但如果方法名称不是保留字也可以使用

请注意,@前缀不构成标识符本身的一部分。因此,@ myVariable与myVariable相同。