2012-06-06 60 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; 
相關問題