【问题标题】:Lack of block comments in VB .NET?VB .NET 中缺少块注释?
【发布时间】:2011-01-12 21:16:36
【问题描述】:

只是一个有趣的问题:有人知道为什么 VB .NET 中没有块注释功能吗? (除非真的有——但我还没有遇到过。)

【问题讨论】:

标签: vb.net comments block-comments


【解决方案1】:

这里完全滥用编译器指令...但是:

#If False Then
Comments
go
here
#End If

您没有获得正确代码着色的好处(使用默认配色方案时它不会显示为绿色),并且隐式行继续系统会自动缩进从第二行开始的段落中的行。但是编译器会忽略文本。

【讨论】:

  • 完美!需要在 Notepad++ 中临时注释掉 SSRS 部署脚本中的一些代码行,效果很好。
【解决方案2】:

根据要忽略的行数,可以使用编译器指令。它在技术上可能不等同于 cmets(例如,您不会获得 cmets 的语法着色),但它可以在不单独注释多行的情况下完成工作。因此,您只需再添加 3 行代码。

#Const COMMENT = "C"
'basically a false statement
#If COMMENT = "Y"  Then
   'code to be commented goes between #If and #End If
   MsgBox('Commenting failed!')
#End If

这是假设目的是忽略代码块而不是添加文档(“cmets”实际用于什么,但我也不介意为此使用编译器指令)。

然而,当只有大约 10 行要注释时,这种方法很不方便。

参考:http://msdn.microsoft.com/en-us/library/tx6yas69.aspx

【讨论】:

    【解决方案3】:

    这是 Visual Basic 语法的副作用,换行符会终止语句。这使得多行注释与编译器解析语言的基本方式非常不兼容。在花括号语言中不是问题,换行符只是空格。

    这从来都不是真正的问题,Visual Basic 长期以来一直拥有强大的 IDE 支持。注释掉多行是 IDE 功能,编辑 + 高级 + 注释选择。

    【讨论】:

    • +1 IDE 为我处理所有这些事情,让我可以专注于编写永远不需要被注释掉的好代码
    • 使用 CTRL+K+C 和 CTRL+K+U 你不需要阻止 cmets :)
    • 另外 - 在 C# 中,当您编写 /* 时,编辑器会自动将随后的所有代码转换为注释,因此您可以放松大纲。这就是我不在 C# 中使用块 cmets 的原因。
    【解决方案4】:

    正如可以在“Comments in Code“ 中看到的那样,没有其他方法:

    如果您的注释需要多行,请在每一行使用注释符号,如下例所示。

    ' This comment is too long to fit on a single line, so we break 
    ' it into two lines. Some comments might need three or more lines.
    

    同样,REM statement 上的帮助指出:

    注意:
    您不能使用续行序列 (_) 继续 REM 语句。一旦注释开始,编译器就不会检查字符的特殊含义。对于多行注释,请在每一行使用另一个 REM 语句或注释符号 (')。

    【讨论】:

      猜你喜欢
      • 2013-09-17
      • 2010-11-07
      • 1970-01-01
      • 2023-03-10
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      相关资源
      最近更新 更多