【问题标题】:Usage of @ Before Method Call [duplicate]@在方法调用之前的用法[重复]
【发布时间】:2019-07-11 00:42:22
【问题描述】:

考虑这样的方法声明:

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

然后这样称呼它:

obj.@MethodName("some string");

方法名前的@有什么作用? 它的行为是否像将它放在包含转义字符的字符串之前?

【问题讨论】:

    标签: c#


    【解决方案1】:

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

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

    删除@,它不会编译。它不经常使用。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 2019-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多