C#编码风格:注释

C#编码风格:注释,c#,C#,大多数C#风格指南建议不要使用/*…*/评论风格,有利于//或//。为什么要避免使用前一种样式?/***/对于多行代码块很好。例如,在代码文件、版权信息等的顶部 /对于单行来说更容易 始终至少对类中的所有公共成员使用//,因为您的XML文档是从中生成的,您可以从中创建帮助文件。我认为您可以随心所欲地进行评论,因为我们大多数人都是通过Visual Studio中的快捷方式进行评论的。 我使用ctr+K,ctrl+C显示所有选定行,并ctr+K ctrl+U取消对选定行的注释。我的猜测是因为在每一行

大多数C#风格指南建议不要使用/*…*/评论风格,有利于//或//。为什么要避免使用前一种样式?

/***/
对于多行代码块很好。例如,在代码文件、版权信息等的顶部

/
对于单行来说更容易


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

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

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

我不会说我对这两种方法都有强烈的反对意见,但我认为最大的问题是,如果嵌套了它,
/*
*/
会变得混乱,其副作用是无法安全地复制/粘贴块(相当)

您很容易以错误的代码注释/启用而告终,或者由于您以
/*/***/
而告终而无法编译


如果你在周围复制一块
/
,没有什么坏处——只有那些行保留注释。

我的观点是“//”比/**/

更容易输入。我想到的一个例子是,可能会意外中断
/*
样式的注释。比如说

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

此代码不会编译,而
/
变量会编译。另外,
/
表示外部工具响应不同的特定文档样式

我认为
/**/
最终将走上Dodo的道路,因为在Visual Studio中,您只需选择一块代码,然后点击CTRL-E,C,使用
/
样式对其进行注释。

我总是使用//进行实际注释,而我保存/**/用于我暂时不想运行的代码,以进行调试/开发


通过只使用//,您可以确保可以注释掉一大块行/方法等,而无需嵌套注释,也不会让编译器哭哭啼啼。

有几个理由选择//to/*..*/

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

有一件事,/**/可以做,但是//不能做,那就是注释行的内部部分。我有时会用它来注释某个方法的某个参数,但有些地方并不明显:

        point = ConvertFromLatLon(lat, lon, 0.0 /* height */ ) ;
在本例中,作为第三个参数传递的常量0.0表示高度。 当然,这可能更好:

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

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

它们根本不能正确嵌套。应该是一个社区wiki…@Brandon,因为答案是一个偏好问题。这个所谓的社区维基在哪里?如果你编辑这个问题,在编辑框的底部有一个勾选框选项。是不是CTRL+E,C和CTRL+E,U?是的,一些VS有这样的组合,但我不知道我的VS是如何在我自己做的任何安装中使用这种组合的。我的Carma有点问题:).Ctrl+Alt+/在Resharper中或/或在CodeRush中。我总是使用numpad/和*,它们在不使用Shift的情况下紧挨在一起。