興味のある質問: VB .NET にブロック コメント機能がない理由を知っている人はいますか? (実際に存在する場合を除きますが、まだ遭遇したことはありません。)
4 に答える
これは Visual Basic 構文の副作用であり、改行はステートメントを終了します。これにより、複数行のコメントは、コンパイラが言語を解析する基本的な方法とかなり互換性がなくなります。中括弧言語の問題ではなく、改行は単なる空白です。
Visual Basic は非常に長い間、強力な IDE サポートを提供してきました。複数行のコメント アウトは IDE の機能であり、編集 + 詳細設定 + コメントの選択です。
ここでコンパイラディレクティブを完全に悪用しています...しかし:
#If False Then
Comments
go
here
#End If
適切なコード配色の利点が得られず (既定の配色を使用する場合は緑色で表示されません)、暗黙的な行継続システムにより、段落内の行が 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
'
無視する行数に応じて、代わりにコンパイラ ディレクティブを使用できます。技術的にはコメントと同等ではないかもしれません (たとえば、コメントの構文の色付けは得られません) が、多くの行を個別にコメントしなくても仕事は完了します。したがって、あと 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 行程度しかない場合、この方法は手間がかかるため不便です。