【发布时间】:2023-03-19 13:20:01
【问题描述】:
C# 规范/StyleCop(不确定是哪个)建议使用两个标签来注释自动属性——<summary> 和 <value>,给出如下内容:
class Foo
{
/// <summary>Gets bar.</summary>
/// <value>Bar.</value>
public Example Bar { get; set; }
}
但出于所有实际目的,<summary> 的值始终为Gets <whatever you said for value here\>.
这里的单独标签是为了帮助特定的文档生成器,还是与编译器标记自动属性的方式有关,或者其他什么?
【问题讨论】:
-
如果您开箱即用,那么对于那些使用此属性的人来说,它们是自动实现的这一事实是未知的。只是在这里扮演魔鬼的拥护者......
-
我认为这只是一个规则。有趣的是,微软提供了一个看起来像这样的例子:
<value>The Name property gets/sets the _name data member.</value>,这对于自动属性来说是没有用的。 Visual Studio 不会自动添加此标记。 -
@Robert:Visual Studio 不会自动添加在一般情况下会通过 StyleCop 的内容。
-
我不知道那是什么意思。如果您说 Visual Studio 无法确定它是一个属性,也许您是对的。
-
@Robert:不,我的意思是 Visual Studio 的自动文档生成器不关心 C# 规范或 StyleCop。 StyleCop 会因为 Visual Studio 对所有类型的事情感到满意而失败。例如,如果具有公共 getter 和私有 setter 的属性不包含字符串
Gets,则 StyleCop 将抛出错误。
标签: c# documentation