C# 在.NET中使用XML注释的优点是什么?

C# 在.NET中使用XML注释的优点是什么?,c#,doxygen,xml-comments,C#,Doxygen,Xml Comments,我无法理解使用XML注释的优点。我知道它们可以转换为代码外部的漂亮文档,但使用更简洁的DOxygen语法也可以实现同样的效果。我认为XML注释是错误的,因为: 它们通常混淆了注释和代码。(它们更难被人类阅读) 在单个屏幕上可以查看的代码更少,因为“summary”和“/summary”占用更多的行 (已删除) 那么是什么原因呢?为什么XML在.NET中比简单的DOxygen语法更受欢迎 ide在使用该方法时会拾取注释并显示它们 编写C#的每个人可能都熟悉XML注释系统。对于新员工来说,要学的东西

我无法理解使用XML注释的优点。我知道它们可以转换为代码外部的漂亮文档,但使用更简洁的DOxygen语法也可以实现同样的效果。我认为XML注释是错误的,因为:

  • 它们通常混淆了注释和代码。(它们更难被人类阅读)
  • 在单个屏幕上可以查看的代码更少,因为“summary”和“/summary”占用更多的行
  • (已删除)
  • 那么是什么原因呢?为什么XML在.NET中比简单的DOxygen语法更受欢迎

  • ide在使用该方法时会拾取注释并显示它们
  • 编写C#的每个人可能都熟悉XML注释系统。对于新员工来说,要学的东西更少 我并不是说DOxygen不是更好,只是每个人都更熟悉xml注释系统,这一点很重要。这只是你培训新员工要做的少一件事

    至于保持变量未注释。对你来说很明显的事情,不会对别人(或6个月后的你)说

    好吧,现在我想我明白你的要求了

  • 模糊的评论。颜色编码有帮助。就我个人而言,我会快速浏览灰色文本,只阅读绿色文本,除非我需要阅读xml文本。(至少在我的设置中)

  • 我们有大的显示器,所以我们通常在屏幕上看到更多的代码。(买一台大显示器比对人们进行再培训要便宜)。关于这一点的另一件事是,我打赌您一次只会积极地查看一个函数,因此如果整个函数都放在一个页面上,您可能不会因为看不到更多代码而遭受太多的痛苦。如果函数很长,那么我会发现这是个问题

  • 如果可能的话,我们将摘要注释放在一行上(假设它不是很大)。这减少了使用的空间

  • 我不知道DOxygen是否会这样做,但是你可以折叠评论,这样它们就不会碍事了


  • 我发现这个插件更受欢迎。如果可以根据方法名自动生成注释,那么为什么要使用注释呢

    Steve Yegge说这是一个新手程序员的标志,我很难不同意他的观点。

    你不必在项目中使用它们

    它们是一个恰好集成到VisualStudio中的标准,如果您使用StyleCop,则可以强制执行它们。这就是这里的美德


    然而,如果你决定使用强氧,那么没有什么可以阻止你。只需确保一致性。

    XML文档的主要工作不是生成文档。它是为你的班级的客户提供良好的智能感知信息。将生成的.xml文件与程序集一起提供。

    在.NET中使用xml注释的优点 它们由C#编译器和VisualStudio提供本地支持,提供一个单一位置来记录API,以便在打印、在线和intellisense文档中使用

    声明如下:

    在每个项目中,都有人 对文档不满意。 团队领导希望得到更多的评论 来源,技术作家想要的 更多关于 代码设计、质量保证 查看功能规范,以及 等等。如果所有这些文件都是 事实上,你仍然拥有 保持他们所有人的战斗 同步的

    虽然格式不一定理想,但XML文档注释提供了丰富的语法,可以实现这一点

    为什么不支持C#中的DOxygen?
    至于为什么选择现有的XML系统而不是DOxygen,我怀疑这主要是因为它是在下发布的,这意味着Visual Studio和C#编译器也需要这样发布——考虑到这一点,微软无疑不想这么做。

    在我看来,这并不是一个正确的答案。这两个系统都不是“更好”的实际上,它们都做同样的工作,这就是允许您生成代码文档

    最终的输出可以用完全相同的方式对它们进行格式化,并且它们在支持什么标签等方面具有几乎相同的功能,因此这里真正的问题在于个人选择

    就我个人而言,我发现XML注释更具可读性、逻辑性和简单易用性,但这还有一个额外的优点,即visual studio自动生成存根供我填写,并且它对折叠它们提供了极好的支持,这样它们就不会占用屏幕上的大量空间。我相信那些来自VI或其他IDE编辑背景的人会有不同的观点,但这两者都没有真正的优势

    所以我想说,这实际上取决于您使用的IDE以及您和您的团队使用的IDE

    现在,如果您想问为什么Microsoft选择在VisualStudio中与XML注释紧密集成,这是另一个问题。最有可能的原因是:他们在VS中实现会更简单(因为他们可以重用现有代码来生成/读取注释和构建intellisense等),他们有一种坚持“标准”的趋势(无论是他们自己的标准还是行业标准),还有Jeff提到的许可原因


    只需补充一点,Microsoft在VS中使用的产品称为“Sandcastle”,这是一种内部XML文档生成工具。它有自己的wiki页面@

    XML标准定义了如何进行评论。我们在这件事上没有发言权。它们有多“好”无关紧要,这是它的方式。嗯,等等,你是在说一种使用XML而不是一般的XML的特定技术吗