命名与关键字对象冲突

时间:2017-02-03 12:13:36

标签: c#

所以我有这个简单的问题,我正在努力。请考虑以下代码:

win.debugger.sendCommand('Debugger.enable', {}, function() {
    setBreakpoint(win);
});

此函数抛出语法错误,因为namespace Foo { public class Bar { public void Test(string object) { } } } 是C#中的关键字。有办法解决这个问题吗?在我的真实代码中,我有一个使用函数签名来创建API的框架,我应该使用object名称作为参数。

2 个答案:

答案 0 :(得分:4)

在参数名称@object之前使用@将关键字用作标识符

public void Test(string @object)

来自C#语言规范2.4.2 Identifiers

  

本节中给出的标识符规则完全符合Unicode标准附件建议的规则   31,除了允许下划线作为初始字符(原样)   传统的C编程语言),Unicode转义序列   在标识符中允许使用,并且允许“@”字符作为a   前缀以使关键字可用作标识符

答案 1 :(得分:2)

@符号允许您使用保留字。例如:

int @class = 15;

以上作品,如下所示:

int class = 15;