5

如何在 Resharper 中创建具有支持字段的属性?

这是您想要在课堂上做的第一件事,但我找不到如何去做。

它是如此简单。

4

3 回答 3

13

身体之内class,打字prop并击中Tab。提供属性的类型和名称。这将创建一个自动属性(如今,它通常是您想要创建的其中之一)。

然后,将光标放在属性名称上,点击Alt+Enter并选择To property with backing field

于 2012-06-27T09:07:28.870 回答
7

我发现最快的方法是键入您的属性,就好像它已经存在一样:

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$ 自动生成,并将其设置为“不可编辑”。

但我相信第一种方法是最快和最简单的。

于 2012-06-27T08:41:54.850 回答
0

如果您已经有一个带有 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”。将创建一个支持字段。

于 2016-11-20T19:01:49.907 回答