5

有没有办法在 VB.NET 的 LINQ 中插入内联代码注释?

请参阅下面的第 2 行作为需要内联注释的示例

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
    )

这在 SQL 代码中是微不足道的,坦率地说,在 SP 变得复杂时非常有用。如果能够在 LINQ to SQL 中执行相同的跨开发人员通信,那就太好了。

更新

这是给你的测试条件。

 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)
4

3 回答 3

8

好的,伙计们,这是官方的答案——在 VB 中是不可能的。证明

在 VB 中,您不能将内联注释添加到多行 LINQ 语句中,这真的很烦人!

更多信息:

坏消息是,这不会是微不足道的实施。当前的 VB 解析器对单行和注释的限制太低了。它需要完全重写 VB 解析器。

好消息是我们已经着手进行这样的重写(代号为“Roslyn”——已经有几篇文章和讨论过)。这还有很长的路要走,我们不会在这个阶段就什么/什么时候做出承诺。

-- Lucian Wischik,VB 语言 PM

于 2012-10-19T20:27:29.927 回答
1

VB.NET 14 引入了内联注释(链接)的能力。

您可以在隐式续行后、初始化表达式内部以及 LINQ 表达式术语之间添加注释。

于 2015-08-07T23:58:23.943 回答
0

如果

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

不起作用,那么这是不可能的。

于 2012-10-19T20:21:33.430 回答