3

大家好,我的问题很简单。

/// <summary>
/// a description here. for internal use
/// </summary>
private A _Owner;
/// <summary>
/// Same description also here. for outside use
/// </summary>
public A Owner
{
    get { return _Owner; }
    set { _Owner = value; }
}

有没有办法避免两次写相同的评论?这只是一个麻烦。

4

5 回答 5

7

首先,请注意,您不需要私人成员的智能注释,包括字段。所以你可以删除第一条评论。如果该字段的含义从名称中不明显,则说明您没有正确命名它。

其次,对于大多数简单的属性,您可以完全删除显式字段声明......

/// <summary>a description here</summary>
public A Owner {get;set;}
于 2013-02-07T11:51:46.083 回答
5

它不是。但是评论该属性就足够了,因为私有成员不会显示在您的班级之外。因此,只需评论您的财产。

于 2013-02-07T11:52:20.583 回答
4

如果它只是一个支持字段的直观视图,只需使用 auto 属性来避免重复。

/// <summary>
/// just use an autoprop
/// </summary>
public A Owner
{
    get;set;
}
于 2013-02-07T11:51:01.047 回答
2

使用自动实现的属性,然后您可以为该属性指定单个 XML 注释。

/// <summary>
/// Same description also here. for outside use
/// </summary>
public A Owner
{
get; set;
}

但是,如果您在 get 或 set 中使用私有字段做某事,那么您必须指定 XML 注释两次。

还有一件事,您可能必须为 property 指定 XML 注释,因为它暴露在类之外,而不是您的公共字段。

于 2013-02-07T11:52:13.383 回答
1

不,没有办法避免这种情况,因为 intelisense 将书面评论链接到找到的代码工件。在您的情况下,您有2个:

  • 一个是一个property
  • 另一个是field.

因此,在您的情况下,您需要编写两次,或者,正如 spender 建议的那样,使用 auto 属性并定义一次。

于 2013-02-07T11:53:22.657 回答