2012-10-19 12 views
5

Gibt es eine Möglichkeit zum Einfügen von Inline-Code-Kommentare in LINQ in VB.NET?Inline LINQ Kommentare in VB.NET

Bitte siehe Zeile 2 in der unten als Beispiel, wo ein Inline-Kommentar würde

Dim Jobs = (From X In DB.Jobs_Select(SearchStr, RequiresFilter) 
    Where X.JobStatusID < 2 -- **** INSERT INLINE COMMENT HERE **** 
    Order By 
     X.JobPriorityID Descending, 
     If(X.TargetDate, Date.MaxValue), 
     X.NeedsLit Descending, 
     X.HasOldArtRequests Descending, 
     X.HasOldLicRequests Descending 
    ) 

Dies ist trivial in SQL-Code und ehrlich gesagt wünschenswert sein, sehr nützlich, da SP komplexer geworden. Es wäre schön, in LINQ to SQL dieselbe herstellerübergreifende Kommunikation durchführen zu können.

Aktualisieren

Hier ist eine Testbedingung für Sie.

Dim L As New List(Of KeyValuePair(Of Integer, Integer)) 

Dim a = (From X In L 
      Where X.Key > 5 'test comment 
      Order By X.Value) 
+2

Funktioniert es nicht mit '' '? –

+0

Nein, 15 Kompilierfehler durch Einfügen eines Apostrophs an dieser Stelle –

+0

@BrianWebster: Funktioniert für mich auf eine leichtere Abfrage. Können Sie die Frage mit etwas aktualisieren, das wir zum Testen in VS einfügen können? – Neolisk

Antwort

7

Ok Leute, hier ist die offizielle Antwort - nicht möglich in VB. Proof.

Es ist wirklich ärgerlich, in VB, die Sie nicht Inline-Kommentare zu mehrzeilige LINQ-Anweisungen hinzufügen können!

und weitere Informationen:

Die schlechte Nachricht ist, dass dies nicht trivial wäre zu implementieren. Einschränkungen in Bezug auf einzelne Zeilen und Kommentare sind in den aktuellen VB-Parser auf einem zu niedrigen Niveau eingebaut. Es würde eine vollständige Neuschreibung des VB-Parsers erfordern.

Die gute Nachricht ist, dass wir eine solche Neufassung gestartet haben (Codename "Roslyn" - es gab mehrere Artikel und spricht darüber). Es ist immer noch ein Weg aus und wir machen keine Verpflichtungen über was/wann um dieser Stufe.

- Lucian Wischik, VB Sprache PM

+0

Gute finden, danke Neo –

+1

Ich fand, dass auch Tim. Bearbeitete es in Neos Antwort vor 3 Minuten. Ich will nicht lernen, aber es ist eine gute Information. –

+0

@BrianWebster: Gern geschehen! Hoffnung Roslyn bringt etwas Parität zwischen .NET Sprachen. – Neolisk

0

Wenn

Where X.JobStatusID < 2 ' **** INSERT INLINE COMMENT HERE **** 

nicht funktioniert, dann ist es nicht möglich.

+0

Dies funktioniert nicht in VS2010. Es funktioniert nur, wenn es nach der Beendigung der LINQ-Anweisung platziert wird, aber darum frage ich nach Inline-Kommentaren –

+1

Wow. Habe das nicht von VB erwartet. – Alex

+0

@Alex: Ja, ich auch nicht. – Neolisk

1

VB.NET 14 eingeführt, um die Fähigkeit, Inline-Kommentare zu machen (link).

Sie können Kommentare nach impliziten Zeilenfortsetzungen, innerhalb von Initialisierungsausdrücken und unter LINQ-Ausdruckstermen einfügen.