【问题标题】:C# coding style: commentsC# 编码风格:注释
【发布时间】:2010-12-17 05:47:01
【问题描述】:

大多数 C# 样式指南不建议使用 /* ... */ 注释样式,而支持 // 或 ///。为什么要避免前一种风格?

【问题讨论】:

  • 应该是一个社区维基...
  • @Brandon,因为答案是偏好问题。
  • 这个所谓的社区维基在哪里?
  • 如果您编辑问题,编辑框底部有一个复选框选项。

标签: c#


【解决方案1】:

我不会说我对两者都有强烈的看法 - 但 IMO 最大的问题是 /**/ 如果嵌套会变得混乱,副作用是您无法复制/粘贴安全地(相当)阻挡周围。

您很容易得到注释/启用的错误代码,或者因为您得到了 /* /* */ */ 而导致它无法编译。

如果您复制 // 的块,没有害处 - 只是那些行保持注释。

【讨论】:

  • 它们根本没有正确嵌套。
【解决方案2】:

/* */ 可以做到// 不能做到的一件事是注释行的内部部分。有时我会使用它来注释某个方法的参数,其中某些东西并不明显:

        point = ConvertFromLatLon(lat, lon, 0.0 /* height */ ) ;

在这种情况下,作为第三个参数传递的常数 0.0 表示高度。 当然这可能会更好:

        double height = 0.0;
        point = ConvertFromLatLon(lat, lon, height) ;

(我更可能临时使用 /* */ 行内,只是尝试传递一个特定的值。)

【讨论】:

    【解决方案3】:

    有几个理由更喜欢 // 而不是 /*.. */.

    • 正如 JaredPar 所述,使用 /* */ 时可能会出现奇怪的注释嵌套问题。
    • 如果您曾经编写/编写过一些处理源代码文件的代码,如果您只需要处理 // 方法,您会非常高兴。
    • 使用“//”方法直观地检测一大块注释代码要容易得多,尤其是在语法着色不可用的情况下。事实上,为了安全起见,您经常会在 /* */ 块中看到以 * 为前缀的各个行。
    • 可用于生成代码文档的 XML 注释样式需要使用“///”。

    【讨论】:

      【解决方案4】:

      想到的一个例子是,可能会意外中断/* 风格的评论。例如

      /* This is the start of a comment that documents the 
         behavior of the +-*/ operators in our program
      */ 
      

      此代码无法编译,而 // 变体可以。 /// 也代表了一种特定的文档样式,外部工具对它的响应不同。

      【讨论】:

        【解决方案5】:

        /* */ 适用于多行代码块。例如在代码文件的顶部,版权信息等。

        // 单行更容易。

        始终至少对类中的所有公共成员使用///,因为您的 XML 文档是从您可以创建帮助文件的文档生成的。

        【讨论】:

          【解决方案6】:

          我认为您可以随意评论,因为我们大多数人都是通过 Visual Studio 中的快捷方式进行评论的。 我使用ctr+K, ctrl+C 对所有选定的行进行注释,并使用ctr+K ctrl+U 取消对选定行的注释。

          【讨论】:

          • 不是CTRL+E,C和CTRL+E,U吗?
          • 是的,有些 VS 有这种组合,但我不知道我的如何将它用于我自己制作的任何安装。我的 Carma 有一些东西:)。
          【解决方案7】:

          我的观点是“//”比/**/更容易输入

          【讨论】:

          • 我总是使用小键盘 / 和 *,它们彼此相邻,而不使用 Shift。
          【解决方案8】:

          我认为/* */ 最终会走上 Dodo 的道路,因为在 Visual Studio 中,您只需选择一段代码并按 CTRL-E,C 即可使用 // 样式将其注释掉。

          【讨论】:

          • Resharper 中的 Ctrl+Alt+/ 或 CodeRush 中的 / 或 '。
          【解决方案9】:

          我总是将 // 用于实际的 COMMENTS,而将 /* */ 保存为我暂时不想运行的代码以用于调试/开发目的。

          通过仅使用 //,您可以确保可以注释掉一大块行/方法等,而无需嵌套 cmets 并使编译器崩溃。

          【讨论】:

            【解决方案10】:

            我的猜测是因为一个需要在每一行上显式的语法,一个创建 cmets,如果不使用结束 */,则可以注释掉大部分代码。它只是不那么安全。

            【讨论】:

              猜你喜欢
              • 2018-09-06
              • 1970-01-01
              • 2015-05-27
              • 2016-07-27
              • 2011-02-02
              • 2010-10-20
              • 2010-11-15
              • 2023-04-02
              • 2010-10-26
              相关资源
              最近更新 更多