2010-06-24 69 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以前版本的應用程序時遇到問題時才需要注意。