2012-06-27 52 views

回答

4

我發現的最快捷的方法是,如果它已經存在,輸入你的財產:

this.MyProperty = "hello"; 

然後按Alt +回車的屬性名稱,並選擇新屬性「myProperty的」然後單擊標籤選擇在自動屬性,託管後臺字段或默認成員主體之間。

我相信這比使用prop快捷方式更快,命中選項卡,指定屬性類型,按兩次選項卡,指定名稱,然後在屬性名稱上按Alt-Return並選擇'to property with backing field '選擇。

您還可以創建動態模板,這樣稍微有更少的工作,e.g:

/// <summary> 
/// Private backing field for $Property$ property 
/// </summary> 
private $Type$ $BackingField$; 

public $Type$ $Property$ 
{ 
    get 
    { 
     return this.$BackingField$; 
    } 

    set 
    { 
     this.$BackingField$ = value;  
    } 
} 

但我相信第一種方法是最快最簡單的。

+0

我不能相信你不能從類而言,我震驚做到這一點...這101東西。必須是resharper的業餘愛好者。 – Malcolm

+0

我很高興我有一個試用版本 – Malcolm

+0

我認爲這實際上更快,因爲R#可以從作業中推斷出屬性類型。但是,您也可以創建一個Live模板。我已經更新了包含示例的答案。 – devdigital

12

class的正文內,鍵入prop並點擊標籤。提供房產的類型和名稱。這將創建一個autoproperty(現在,它通常是你想創建的其中一個)。

然後,將光標放在屬性名,創下Alt鍵 + 輸入並選擇To property with backing field

0

如果你已經有一個getter和setter的屬性,有時你會發現,你所使用的支持字段不再可用,因爲你改變了基類當前類或者進行其他更改。例如,在下面的LinesMax特性,支持字段Height可從繼承的類:

public int LinesMax 
{ 
    get { return ConvertValGet(AdjustMetricEnum.Height, Height); } 
    set { Height = ConvertValSet(AdjustMetricEnum.Height, value); } 
} 

如果上面的代碼工作,但我決定以後不再繼承暴露出身高屬性的類,這兩個在IDE中高度變量名稱將變成紅色,表示它們不再可用於代碼。

在這一點上,我可能希望創建一個私有支持字段。爲了方便地創建,我可以首先將高度名稱修改爲_height,然後將光標放在_height名稱上,按Alt-Enter,然後選擇Create field'_height'。後臺字段將被創建。