У меня просто был этот бросок ошибка компиляции при рефакторинге некоторого наследия (следовательно VB.NET) модульные тесты, где я хотел просто прокомментировать одни из демонстрационных исходных данных к MBUnit:
<RowTest> _
'<Row("Something")> _
<Row("SomethingElse")> _
Который дал:
Attribute specifier is not a complete statement. Use a line continuation to apply the
attribute to the following statement.
Это на самом деле рассматривает whitespace/commented-out строку как фактическую строку? Обычно, когда я хватаю о VB.NET, я снабжаю его предисловием с, "Теперь, я не хотел бы быть парнем, пишущим их грамматику, но..." Это походит на один из тех случаев, где я не знаю ответ, если я прав. Но я действительно знаю, хотят знать ответ, в этом случае.
Да, насколько я понимаю, проблема в том, что ваше продолжение первой строки добавляет закомментированную строку как часть первой строки, а затем символ продолжения строки в закомментированной строке игнорируется, поскольку он является частью комментария, так что в итоге получается:
<RowTest> '<Row("Something")> _ <-- this line continuation character is ignored since it's commented out.
<Row("SomethingElse")> _
Для поддержки этого был бы необходим способ завершения комментария, отличный от новой строки, но поскольку это обычно не проблема, и я думаю, что это сильно повлияло бы на скорость компиляции и т.д., поскольку пришлось бы разбирать все комментарии, я полагаю, что это не имеет смысла.