2012-10-19 40 views
5

Có cách nào để chèn chú thích mã nội tuyến trong LINQ trong VB.NET không?Inline LINQ Bình luận trong VB.NET

Xin xem dòng 2 ở dưới đây là một ví dụ về nơi một bình luận inline sẽ được mong muốn

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 
    ) 

Đây là tầm thường trong mã SQL và thẳng thắn, rất hữu ích như SP của trở nên phức tạp. Sẽ rất tuyệt khi có thể thực hiện cùng một giao tiếp giữa các nhà phát triển trong LINQ to SQL.

Cập nhật

Đây là điều kiện thử nghiệm cho bạn.

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

Nó không hoạt động với '''? –

+0

Không, 15 biên dịch lỗi bằng cách chèn một dấu nháy đơn tại địa điểm đó –

+0

@BrianWebster: Làm việc cho tôi trên truy vấn nhẹ hơn. Bạn có thể cập nhật các câu hỏi với một cái gì đó chúng ta có thể dán vào VS để kiểm tra? – Neolisk

Trả lời

7

Ok, đây là câu trả lời chính thức - không thể thực hiện được trong VB. Proof.

Đó là thực sự gây khó chịu trong VB mà bạn không thể thêm nhận xét nội tuyến vào câu lệnh LINQ đa dòng!

Và biết thêm thông tin:

Tin xấu là điều này sẽ không phải là tầm thường để thực hiện. Giới hạn về một dòng và nhận xét được tích hợp vào trình phân tích cú pháp VB hiện tại ở mức quá thấp. Nó sẽ yêu cầu viết lại hoàn toàn bộ phân tích cú pháp VB .

Tin tốt là chúng tôi đã bắt tay vào viết lại như vậy (tên mã là "Roslyn" - đã có một số bài viết và thảo luận về nó). Đó là vẫn còn là một lối tắt và chúng tôi không cam kết về những gì/khi nào tại giai đoạn này.

- Lucian Wischik, VB ngôn ngữ PM

+0

Tìm tốt, cảm ơn bạn Neo –

+1

Tôi thấy rằng quá thời gian. Chỉnh sửa nó vào câu trả lời của Neo 3 phút trước. Không muốn tôi muốn tìm hiểu, cuối cùng, nhưng đó là thông tin tốt. –

+0

@BrianWebster: bạn được chào đón! Hope Roslyn mang đến sự tương đồng giữa các ngôn ngữ .NET. – Neolisk

0

Nếu

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

không hoạt động, sau đó nó là không thể.

+0

Điều này không hoạt động trong VS2010. Nó chỉ hoạt động nếu được đặt sau khi câu lệnh LINQ bị chấm dứt, nhưng đó là lý do tại sao tôi hỏi về các ý kiến ​​nội dòng –

+1

Wow. Không mong đợi điều đó từ VB. – Alex

+0

@ Alex: vâng, tôi cũng vậy. – Neolisk

1

VB.NET 14 giới thiệu khả năng đưa ra nhận xét inline (link).

Bạn có thể đặt nhận xét sau khi tiếp tục dòng ngầm, bên trong biểu thức khởi tạo và giữa các cụm từ LINQ.

Các vấn đề liên quan