2010-04-27 95 views
6

對於C#C#的屬性,我討厭寫出來的變量,然後寫出所有屬性。沒有辦法選擇所有變量,右鍵單擊並創建所有屬性。快速創建變量

+0

您正在使用哪種版本的.Net? – adrianbanks 2010-04-27 19:24:19

回答

10

您是否在尋找一個代碼重構工具?如果是這樣,check out ReSharper。它提供了一個簡單的將簡單的現場支持的屬性轉換爲自動屬性,反之亦然。

如果你只是不想寫的自定義字段支持的屬性,可以使用auto-properties,FPOR例如,像這樣:

public string MyProperty { get; set; } // generates an auto-property 

這相當於:

private string m_MyProperty; 
public string MyProperty 
{ 
    get { return m_MyProperty; } 
    set { m_MyProperty = value; } 
} 

你甚至可以使得setter和getter的區別:

public string MyProperty { get; private set; } 

如果你選擇使用自動性能,要知道,你不能訪問底層的領域,也不能提供一個實現的只是一個部分(就在getter或只是二傳手)。但是,您可以使物業變成虛擬。

+0

沒有什麼比免費廣告。 – QueueHammer 2010-04-27 19:24:38

+1

ReSharper和CodeRush值得傳福音。 – 2010-04-27 19:29:38

+3

在這種情況下並不是真正的,因爲Visual Studio已經構建了用於將屬性提升爲屬性的重構(右鍵單擊>重構>封裝字段) – 2010-04-27 19:40:37

2

你爲什麼不這樣做的:

public int SomeProperty { get; set; } 

public int SomeOtherProperty { get; private set; } 

11

如果您正在使用C#3.0或以上(2008年VisualStudio的,本質上),你可以使用自動屬性。雖然這不完全是你要求的,但它應該(希望)能夠做到這一點。

,而不是寫:

private string m_Name; 

public string Name 
{ 
    get { return m_Name; } 
    set { m_Name = value; } 
} 

你可以這樣寫:

public string Name { get; set; } 

這會給你快,「啞」(即沒有檢索或分配邏輯)屬性,可以去你的類。如果您發現以後需要檢索和分配邏輯,只需返回並執行完整的屬性聲明語法即可,而不必更改任何調用代碼。

唯一真正的區別是,你必須使用屬性,讓您的類中的值,如產生後盾變量,編譯時和無法使用你的代碼。

18

右鍵單擊該字段聲明,菜單重構 - >封裝字段,你從

int n; 

int n; 

public int N 
{ 
    get { return n; } 
    set { n = value; } 
} 
+0

我找不到「封裝」......只是它的專業功能? – LightStriker 2013-12-15 21:52:34

4

僅供參考,只需鍵入「託」(不含引號)觸發的一個VS附帶的片段,並且您只是通過它,是目前最快的選擇。

0

你或許應該在C#中使用Auto-Implemented properties大多數事情。但是,如果您希望具有明確後臺字段的「舊式」屬性,則可以創建Visual Studio代碼片段以使它們更容易編寫。 This blog post就是一個例子。

0

我們可以使用道具快捷 和代表的Visual Studio工具,我們可以生成使用一種稱爲工具的C#特性的快速創建在Visual Studio C#性能c# property generator..

當類中有如此多的特性,當我們創建該類的對象, 我們必須採取一定的疼痛分配屬性,以便該工具會減少你的痛苦在一定程度上與此屬性將自動分配對象..

c# property assigner