Разве VB.NET не допускает продолжения строк за закомментированными строками? - PullRequest
6 голосов
/ 26 июня 2010

У меня только что было это сгенерировать ошибку компиляции при рефакторинге некоторых устаревших (следовательно, 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.

Действительно ли это трактует пробел / закомментированную строку как фактическую строку?Обычно, когда я рассказываю о VB.NET, я начинаю его с предисловия: «Я бы не хотел быть тем парнем, который пишет их грамматику, но ...». Это похоже на один из тех случаев, когда я не знаюответь, если я прав.Но я знаю, хочу знать ответ, в этом случае.

Ответы [ 2 ]

4 голосов
/ 26 июня 2010

Да, насколько я понимаю, проблема в том, что ваше продолжение первой строки добавляет закомментированную строку как часть первой строки, а затем символ продолжения строки в закомментированной строке игнорируется, так как это часть комментарий, так что в итоге получается:

<RowTest> '<Row("Something")> _  <-- this line continuation character is ignored since it's commented out.
<Row("SomethingElse")> _

То, что потребуется для поддержки этого, будет способом завершения комментария, кроме новой строки, но, как правило, это не проблема, и я думаю, что это немного повлияет на скорость компиляции и т. Д. разобрать все комментарии, я полагаю, что это не считается полезным.

1 голос
/ 22 июля 2016

У меня есть метод расширения .[Rem], позволяющий на месте «закомментировать» беглые выражения.Вы можете создать атрибут [Rem], чтобы сделать то же самое.

<Row> _
<[Rem]("<Row(""Something"")> _")> _
<RowTest("SomethingElse")> _
Sub Main

End Sub

' Define other methods and classes here
<AttributeUsage(AttributeTargets.All, AllowMultiple:=True)> _
Class [Rem]
    Inherits Attribute
    Public Sub New()
    End Sub
    Public Sub New(Comment As String)
    End Sub
End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...