C# 与关键字对象的命名冲突

C# 与关键字对象的命名冲突,c#,C#,所以我有一个简单的问题,我正在努力解决。考虑这个代码: namespace Foo { public class Bar { public void Test(string object) { } } } 此函数引发语法错误,因为object是C#中的关键字。有办法解决这个问题吗?在我的真实代码中,我有一个使用函数签名创建API的框架,我应该真正使用对象名称作为参数。使用@before参数名称@object使用关键字作为标

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

namespace Foo
{
    public class Bar
    {
        public void Test(string object)
        {
        }
    }
}

此函数引发语法错误,因为
object
是C#中的关键字。有办法解决这个问题吗?在我的真实代码中,我有一个使用函数签名创建API的框架,我应该真正使用
对象
名称作为参数。

使用@before参数名称
@object
使用关键字作为标识符

public void Test(string @object)
来自C#语言规范:

本节中给出的标识符规则与Unicode标准附录建议的规则完全一致 31,但允许下划线作为初始字符(按原样) 传统的(在C编程语言中),Unicode转义序列 标识符中允许使用“@”字符,并且允许将“@”字符作为 用于启用关键字作为标识符的前缀


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

int @class = 15;
当以下情况不起作用时,上述方法起作用:

int class = 15;

即使规范中有错误,也不是你的错误,因此没有理由否决投票。我看这个答案没有错。