13

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

4

4 回答 4

18

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

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

于 2010-02-04T00:54:24.083 回答
9

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

#If False Then
Comments
go
here
#End If

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

于 2011-05-11T00:29:13.430 回答
2

正如在“代码中的注释”</a>中可以看到的那样,没有其他方法:

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

' 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 语句的帮助说明:

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

于 2010-02-04T00:41:51.730 回答
0

根据要忽略的行数,可以改用编译器指令。它在技术上可能不等同于注释(例如,您没有得到注释的语法颜色),但它可以在不单独注释多行的情况下完成工作。因此,您只需再添加 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 行要注释时,所需的努力使这种方法不方便。

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

于 2011-03-01T16:01:51.583 回答