只是一个感兴趣的问题:有谁知道为什么 VB .NET 中没有块注释功能? (除非真的有——但我还没有遇到过。)
这是 Visual Basic 语法的副作用,换行符终止语句。这使得多行注释与编译器解析语言的基本方式非常不兼容。在大括号语言中这不是问题,换行符只是空格。
这从来都不是一个真正的问题,Visual Basic 在很很长一段时间内就拥有强大的 IDE 支持。注释掉多行是一个 IDE 功能,编辑 + 高级 + 注释选择。
这里完全滥用编译器指令......但是:
#If False Then
Comments
go
here
#End If
您无法获得正确的代码着色的好处(使用默认颜色方案时它不会以绿色显示),并且隐式续行系统会自动缩进段落中从第二行开始的行。但编译器会忽略该文本。
根据要忽略的行数,可以使用编译器指令来代替。从技术上讲,它可能并不等同于注释(例如,您无法获得注释的语法着色),但它无需单独注释多行即可完成工作。所以你只需再添加 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
这是假设目的是忽略代码块而不是添加文档(“注释”实际上是用来做什么的,但我也不介意为此使用编译器指令)。
但是,当需要注释的行数大约为 10 行时,所需的工作量使得此方法变得不方便。
由于 VB.Net 支持 XML,因此您可以在代码中编写以下内容:
Dim ignored =
<!--
here my multiline
block comment
-->
它甚至会使线条变成注释绿色。