【发布时间】:2019-07-11 00:42:22
【问题描述】:
考虑这样的方法声明:
public void MethodName(string param){
// method body
}
然后这样称呼它:
obj.@MethodName("some string");
方法名前的@有什么作用? 它的行为是否像将它放在包含转义字符的字符串之前?
【问题讨论】:
标签: c#
考虑这样的方法声明:
public void MethodName(string param){
// method body
}
然后这样称呼它:
obj.@MethodName("some string");
方法名前的@有什么作用? 它的行为是否像将它放在包含转义字符的字符串之前?
【问题讨论】:
标签: c#
这用于允许您使用保留字作为标识符,例如类名、委托和方法。例如:long:
namespace ConsoleApp4
{
internal class Program
{
private static void Main(string[] args)
{
@long();
}
public static void @long ()
{
// Some logic here
}
}
}
删除@,它不会编译。它不经常使用。
请注意,如果您将 long 都更改为 long2 并删除第二个 @,则代码将正常编译。因此,使用@ 意味着您可以调用保留字的方法名称 - 但如果方法名称不是保留字,它也可以。
请注意,@ 前缀并不构成标识符本身的一部分。所以@myVariable 与myVariable 相同。
【讨论】: