VB .NET 中缺少块注释?

问题描述 投票:0回答:5

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

vb.net comments block-comments
5个回答
18
投票

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

这从来都不是一个真正的问题,Visual Basic 在很长一段时间内就拥有强大的 IDE 支持。注释掉多行是一个 IDE 功能,编辑 + 高级 + 注释选择。


10
投票

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

#If False Then
Comments
go
here
#End If

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


2
投票

可以在“代码中的注释”中阅读,没有其他方法:

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

' 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
语句或注释符号 (
'
)。


1
投票

根据要忽略的行数,可以使用编译器指令来代替。从技术上讲,它可能并不等同于注释(例如,您无法获得注释的语法着色),但它无需单独注释多行即可完成工作。所以你只需再添加 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


0
投票

由于 VB.Net 支持 XML,因此您可以在代码中编写以下内容:

Dim ignored =
    <!-- 
             here my multiline 
             block comment 
    -->

它甚至会使线条变成注释绿色。

© www.soinside.com 2019 - 2024. All rights reserved.