2012-06-06 61 views
7

我需要设计一个类,其中一个属性名称必须为return,但是当我创建一个属性名称(如return)时,则会出现错误。如何将C#保留关键字用作不带@前缀的属性名称?

经过一番研究,我发现可以使用保留关键字作为属性或变量名称,方法是在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(); 
[email protected] = "hello"; 

现在我没有得到任何错误,但是当我试图访问属性名称,比如return然后我需要写名字一样@return,我不想要的。我想访问属性名称,如p.return = "hello";而不是[email protected] = "hello";,所以我想知道是否有任何方法可以做到这一点?

+10

使用保留关键字? –

+3

对我来说似乎不合理。您可以使用“返回”名称,而不是保留关键字。 –

+2

为什么不叫它'p.Return'? – phg

回答

25

你不能。这是一个保留关键字。那意味着“你不能”。与“上下文关键字”相对比,后者通常意味着“我们稍后添加了这个,所以我们需要它在一些预先存在的情况下工作”。

这里温和的答案是:使用@return

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

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

+1

+1用于考虑不区分大小写的语言 - 很多人在命名事物时忘记了它们 – MattDavey

-2

由于保留关键字是预定义的,因此没有办法实现这一点,因为保留的标识符对编译器有特殊的含义。

,最好更改的属性名称,并在你的代码中使用它......东西在@Marc给出答案...

+8

......那么为什么重复马克的答案? :) –

0

可以重命名命名空间是这样的:为什么在弯曲

using Test = System.Diagnostics; 
相关问题