2012-03-02 14 views
9

Kiedyś byłem programistą C#, więc ten styl komentowania był bardzo prosty w C#. To doprowadza mnie do szału, ale jak to zrobić to w VB.NET bez otrzymuję błąd składni ?:Jak wstawić komentarz do każdej linii w VB.NET?

Private ReadOnly Property AcceptableDataFormat(ByVal e As System.Windows.Forms.DragEventArgs) As Boolean 
    Get 
     Return e.Data.GetDataPresent(DataFormats.FileDrop) _   'this is a file that a user might manipulate 
       OrElse e.Data.GetDataPresent("FileGroupDescriptor") 'this is a typical Outlook attachment 
    End Get 
End Property 
+4

Dla twojej informacji, to został jazdy programistów VB szalone lata. :-(To powiedziawszy, w twoim przykładzie chciałbym gorąco polecić umieszczenie komentarza * przed * kompletną instrukcją, ponieważ komentarze na końcu linii powodują, że są one trochę nieczytelne, ale problem oczywiście się utrzymuje, ponieważ ciągłe linie obecnie nie mogą być przerywana komentarzami –

Odpowiedz

11

Niestety nie możesz. VB.Net nie zezwala na pojawianie się komentarzy w środku instrukcji, które obejmują wiele wierszy (w tym zarówno ciągi wierszy jawnych, jak i niejawnych). Komentarze muszą znajdować się powyżej oświadczenia lub na jego ostatniej linii.

Wyjątkiem od tej reguły jest lambdas. W porządku jest, aby komentarze pojawiały się w deklaracji lambda, mimo że jest to technicznie jedno stwierdzenie.

+0

Pomimo tego, że ta funkcja została zgłoszona przed wiekami. :-(Pytanie do ciebie jako kogoś z odrobiną poufnych informacji: Czy parser jest naprawdę trudny do przepisania w celu dostosowania się do tej zmiany? –

+0

@KonradRudolph uczciwie koszt to kod IDE. Pomyśl o wpływie, jaki może to mieć na ładnego listera i formatowanie, a następnie czynnik w wieku bazy kodu IDE To jest koszt Zmiana rzeczywistego parsera, aby zignorować komentarze to małe ziemniaki – JaredPar

+0

OK, parser w IDE, a następnie nadal nie widzę. w wieku podstawy kodu identyfikacyjnego "- touché, ale czy to nie było (ani nie jest?) przepisane od zera z Roslyn? –

3

usunąć ten komentarz z kontynuacji linii i powinno być w porządku. Komentarze nie mogą być używane z kontynuacją linii. Kontynuacja linii musi być ostatnią postacią na linii, aby Twój komentarz nie pojawiał się po niej.

Oto podobne pytanie: Why must VB.Net line continuation character be the last one on line

Więc tak:

Private ReadOnly Property AcceptableDataFormat(ByVal e As System.Windows.Forms.DragEventArgs) As Boolean 
     Get 
      'Return a file that a user has dragged from the file system 
      'or a typical Outlook attachment 
      Return e.Data.GetDataPresent(DataFormats.FileDrop) OrElse 
        e.Data.GetDataPresent("FileGroupDescriptor")   

     End Get 
    End Property 

Jest to ograniczenie, które zostały przeszkadza programistów VB przez długi czas.

+0

To nie działa, nadal pojawia się błąd – Denis

+0

Nie możesz mieć komentarza w środku linii Kontynuacja linii nadal tam jest (jeśli usuniesz znak, który jest domniemany), więc musisz się przenieść komentarz do przed lub po bloku kodu – jzworkman

+0

Tak, to nie jest to, co chcę się wydarzyć :-) Ale dziękuję za wyjaśnienie – Denis

0

Najwyraźniej jest to teraz możliwe w Visual Studio 2017

Public Function foobarbaz(ByVal foo As Integer, '' qux 
          ByVal bar As String, '' quux 
          ByVal baz As DateTime) '' garply 

    Return foo.ToString &   '' Concatenate foo 
     bar &     '' with bar 
     baz.ToString   '' and baz 

End Function 
Powiązane problemy