如何在 Resharper 中创建具有支持字段的属性?
这是您想要在课堂上做的第一件事,但我找不到如何去做。
它是如此简单。
身体之内class
,打字prop
并击中Tab。提供属性的类型和名称。这将创建一个自动属性(如今,它通常是您想要创建的其中之一)。
然后,将光标放在属性名称上,点击Alt+Enter并选择To property with backing field
。
我发现最快的方法是键入您的属性,就好像它已经存在一样:
this.MyProperty = "hello";
然后在属性名称上按 Alt-Return,然后选择创建属性“MyProperty”,然后点击选项卡在自动属性、托管支持字段或默认成员主体之间进行选择。
我相信这比使用prop
快捷方式、点击选项卡、指定属性类型、点击两次选项卡、指定名称、然后在属性名称上按 Alt-Return 并选择“带有支持字段的 to 属性”选择要快。
您还可以创建一个实时模板,以便稍微减少工作量,例如:
/// <summary>
/// Private backing field for $Property$ property
/// </summary>
private $Type$ $BackingField$;
public $Type$ $Property$
{
get
{
return this.$BackingField$;
}
set
{
this.$BackingField$ = value;
}
}
参数 $BackingField$ 可以通过模板编辑器的“第一个小写字符”宏从 $Property$ 自动生成,并将其设置为“不可编辑”。
但我相信第一种方法是最快和最简单的。
如果您已经有一个带有 getter 和 setter 的属性,有时您会发现您使用的支持字段不再可用,因为您更改了当前类的基类或进行了其他更改。例如,在下面的LinesMax
属性中,支持字段Height
可从继承的类中获得:
public int LinesMax
{
get { return ConvertValGet(AdjustMetricEnum.Height, Height); }
set { Height = ConvertValSet(AdjustMetricEnum.Height, value); }
}
如果上面的代码有效,但我后来决定不再继承公开 Height 属性的类,则两个 Height 变量名称将在 IDE 中变为红色,表明它们不再可用于代码。
那时,我可能想创建一个私有支持字段。为了轻松创建它,我可以先将高度名称修改为 _height,然后将光标放在任一 _height 名称上,按 Alt-Enter 然后选择创建字段“_height”。将创建一个支持字段。