用XML注释loggingC#代码的最佳实践是什么?
我正在通过一些我刚刚写的新代码,并将NDoc sytle注释添加到我的类和方法中。 我希望能够生成一个非常好的MSDN样式文档以供参考。
一般来说,在为一个class级和一个方法写评论时有什么好的指导方针? NDoc评论应该说什么? 他们不应该说什么?
我发现自己在看.NET框架的评论是什么,但是这个速度太快了; 如果我能有一些好的规则来指导自己,我可以更快地完成文档。
在用于构buildAPI文档的注释中,您应该:
-
解释方法或属性的作用,为什么它存在,并解释任何领域的概念,这些概念对于普通用户来说并不是不言而喻的。
-
列出你的参数的所有先决条件(不能为null,必须在一定范围内等)
-
列出任何可能影响调用者处理返回值的后置条件。
-
列出方法可能抛出的任何exception(以及在什么情况下)。
-
如果存在类似的方法,则解释它们之间的差异。
-
注意任何意想不到的事情(如修改全局状态)。
-
列举任何副作用,如果有的话。
如果最后的评论没有增加任何价值,那只是浪费。
例如
/// <summary> /// Gets manager approval for an action /// </summary> /// <param name="action">An action object to get approval for</param> public void GetManagerApprovalFor(Action action)
…你增加了绝对没有价值,只是增加更多的代码来维护。
这些多余的注释经常被代码所淹没。
StyleCop提供代码和评论风格的提示。 它给出的build议是符合MSDN文档样式。
至于评论的内容,它应该给你的代码的用户足够的信息,以期望什么样的行为。 它也应该回答用户可能有的问题。 因此,尽量把你的代码用作对代码一无所知的人,或者甚至要求别人这么做。
对于属性,您的注释应该指出属性是只读的,只写还是读写。 如果你看所有官方的MS文档,财产文档注释总是以“获取…”,“获取或设置…”和(很less,通常避免只写属性)“设置…”
不要忘记什么是有效的XML。 例如:
/// <Summary> /// Triggers an event if number of users > 1000 /// </Summary>
(错误:无效的XML)。
我写了<summary>注释以包含我想知道的信息,如果我是调用该函数(或实例化该类)的信息。
我写了<备注>注释以包含我想知道的信息,如果我的任务是debugging或增强该function或类。 注意:这并不取代良好的内联评论的需要。 但是有时候,函数/类的内部运作的总体概述是非常有帮助的。
正如在MSDN页面上所述,您使用XML文档注释自动生成文档,因此它可以让您了解您是否正在编写API,并且不想在代码和文档中工作两次,而且还要保留它们同步 – 每次更改代码时,都会修改相应的注释并重新生成文档。
编译/doc
,编译器将search源代码中的所有XML标记,并创build一个XML文档文件,然后使用Sandcastle等工具生成完整的文档。
关于评论的一件事是更新它们。 太多的人改变一个function,然后不改变评论来反映改变。