如何使用C#保留关键字作为没有@前缀的属性名称?

时间:2012-06-06 10:43:50

标签: c# keyword reserved

我需要设计一个类,其中一个属性名称必须是return,但是当我创建一个属性名称return时,我会收到错误。

经过一番研究后,我发现可以通过在C#中添加@前缀,或者在VB.NET中用方括号[]括起来,将保留关键字用作属性或变量名。 。例如:

var @class = new object();

所以这是我的班级设计代码。

public class Person
{
    string _retVal;

    public string @return
    {
        get { return _retVal; }
        set { _retVal = value; }
    }
}

...
Person p = new Person();
p.@return = "hello";

现在我没有收到任何错误,但是当我尝试访问属性名称return时,我需要写出@return之类的名称,这是我不想要的。我想访问属性名称p.return = "hello";而不是p.@return = "hello";,所以我想知道是否有办法做到这一点?

3 个答案:

答案 0 :(得分:26)

你做不到。它是保留关键字。那意味着“你不能”。与“上下文关键字”形成对比,后者通常意味着“我们之后添加了这些关键字,因此我们需要它在一些预先存在的场景中工作”。

这里适度的答案是:使用@return

这里更好的答案是:重命名您的财产。也许是ReturnValue

也可以选择Return - 但您可能也需要考虑不区分大小写的语言。

答案 1 :(得分:0)

您可以重命名名称空间,如下所示:

using Test = System.Diagnostics;

答案 2 :(得分:-2)

无法实现此目的,因为保留关键字是预定义的保留标识符,对编译器具有特殊含义。

最好更改属性名称并在代码中使用它......在@Marc回答中给出的内容......