2010-06-24 44 views
2

VB.NET是否有LINQ支持?我今天晚上讨论VB和C#,有人告诉我说VB是不同的,因为它不处理Web服务和C#,并且它不支持linq。这是真的?VB.NET的问题。 Linq支持?

回答

5

VB.NET definitely supports LINQ syntax。就Web服务而言,我认为与LINQ没有任何关系。

+0

与LINQ没有任何关系,它只是另一个讨论的两个区别。 – Moshe 2010-06-24 05:57:23

+2

'VB是不同的,因为它不处理Web服务以及C#' - 这意味着什么。用这个参数来捍卫C#反对VB.NET的人应该提供了更详细的参数。 – 2010-06-24 06:01:13

+0

同意,我不知道怎么会是这样,他们都编译到IL无论如何。 – Pierreten 2010-06-24 06:16:51

3

是,VB支持LINQ:

  • 其查询表达式实际上比C#的丰富,在有各种LINQ运营商,其可以直接支持,你不得不调用扩展方法直接在C#
  • 它支持使用扩展方法为好,这样你仍然可以做的事情,查询表达式不能表达

的一个领域是确实倒在一个位是concisenes lambda表达式:从我记得,VB9不支持全身的匿名函数,甚至在VB10中,它最终变得比C#更符合语言。

我还没有使用过VB的网络服务,但我会小心接受声明的真相,即它不处理它们以及C#,如果源代码与告诉你它不相同, t支持LINQ ...

1

使用WCF in VB.NET就像在C#中一样简单,与ASMX Web服务一样。

2

您已经收到有关您的问题的LINQ部分的答案,所以我不会再覆盖。这听起来像是一个非常普遍的声明,说VB.NET不像C#那样处理Web服务。

我会诚实的说我不是VB.NET的粉丝,但我多年来需要使用它很多年,并且在涉及到Web服务时我从来没有遇到过VB.NET中任何特定的弱点。这对于ASMX和WCF工具都适用。

0

只有LINQ限制VB.Net在.Net 4.0框架之前就是你不能在你的lambda语句中调用一个void方法。例如。由于lambda在VB中以“Function”关键字开始,因此编译器需要您的方法返回值。但这一切都随着4.0框架而改变。您现在可以使用“Sub”关键字来开始您的lambda语句。所以这几乎没有什么意义,只是在使用4.0以前版本的应用程序时遇到问题时才需要注意。