Отсутствие блочных комментариев в VB .NET? - PullRequest
13 голосов
/ 04 февраля 2010

Просто интересующий вопрос: кто-нибудь знает, почему в VB .NET нет возможности комментировать? (Если это действительно не так - но я еще никогда не сталкивался с этим.)

Ответы [ 4 ]

17 голосов
/ 04 февраля 2010

Это побочный эффект синтаксиса Visual Basic, новая строка завершает оператор. Это делает многострочный комментарий несовместимым с основным способом синтаксического анализа языка компилятором. Не проблема в языках фигурных скобок, новые строки - просто пробел.

Это никогда не было реальной проблемой, Visual Basic имел сильную поддержку IDE в течение очень долгого времени. Комментирование нескольких строк - это функция IDE, Edit + Advanced + Comment Selection.

8 голосов
/ 11 мая 2011

Абсолютно неправильные директивы компилятора здесь ... но:

#If False Then
Comments
go
here
#End If

Вы не получаете преимуществ от правильной окраски кода (она не отображается зеленым цветом при использовании цветовой схемы по умолчанию) инеявная система продолжения строки автоматически выравнивает строки в абзаце, начиная со второй строки.Но компилятор будет игнорировать текст.

2 голосов
/ 04 февраля 2010

Как можно прочитать в «Комментарии в коде» другого пути нет:

Если для вашего комментария требуется более одной строки, используйте символ комментария в каждой строке, как показано в следующем примере.

' 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 или символ комментария (') в каждой строке.

0 голосов
/ 01 марта 2011

В зависимости от того, сколько строк нужно игнорировать, вместо них можно использовать директивы компилятора. Он может быть технически не эквивалентен комментариям (например, вы не получите синтаксическую раскраску комментариев), но он выполняет свою работу, не комментируя много строк по отдельности. Таким образом, вы просто добавляете еще 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

...