лямбда-выражения в c# по сравнению с vb.net

Функционально, есть ли какое-либо различие (кроме синтаксиса onbviously) между лямбда-выражениями в C# и VB.Net?

Править: развитие ответа CraigTP: какие-либо ссылки на ситуацию в.Net 4?

Править: Я спрашиваю, потому что я привык к C#, но для следующего проекта клиент спрашивает VB.Net. Мы не являемся априорными против этого. Мы понимаем, что большинство конструкций языка поддерживается на обоих языках. Однако мы особенно любим способ, которым C# реализует лямбда-выражения. Мы хотели бы иметь обзор различий с VB.Net

Править: ответ принятого CraigTP для указания, что я в настоящее время рассматриваю наиболее важным различием.

Таким образом подводить итог: VB.Net 9 не поддерживает многострочные операторы в лямбда-выражении, и лямбда должна всегда возвращать значение. Обе из этих проблем решаются в VB.Net 10

9
задан jeroenh 20 January 2010 в 17:57
поделиться

5 ответов

Там нет функционала Разница, однако, как Joe Albahari говорит в этот форум Post :

vb.net не поддерживает мультифильту лямбда выражения или анонимные методы.

Обратите внимание, что это основано на C # 3.0 и VB.NET 9.0 (т. Е. Версии языков Visual Studio 2008) - я не уверен, что он по-прежнему относится к Visual Studio 2010 (C # 4.0 и VB.NET 10.0 соответственно).

Отредактируйте:

в соответствии со вторыми комментариями Richard Szaley и мои собственные комментарии, VB.NET 10.0 (который будет частью Visual Studio 2010) . поддерживает мультифильтую лямбдас, а вот ссылка на Видео MSDN Channel 9, которое показывает эту функцию (наряду со многими другими!):

Люциан Уищ и Лиза Фейгенбаум: Что нового в Visual Basic 10

13
ответ дан 4 December 2019 в 07:23
поделиться

лямбда выражения в VB.Net (Pre-2010) должны вернуть значение. Например, следующий синтаксис был недействительным в VB.Net 9, но действителен в VB.NET 10 (код из Mike McIntyre Blog :

Array.ForEach(numbers, Sub(n)
    Console.Write("Number: ")
    Console.WriteLine(n)
End Sub)
8
ответ дан 4 December 2019 в 07:23
поделиться

Правила для генерального метода параметра Тип вывода из неявно набранных аргументов лямбда скорее отличаются в VB и C #.

Мы могли бы перечислить незначительные различия весь день; Это, вероятно, пошло бы быстрее, если вы уточните, почему вы спрашиваете.

4
ответ дан 4 December 2019 в 07:23
поделиться

Увидеть никаких причин, по которым было бы, в конце того, что выражения все будут построить одну и ту же структуру объектов - используемые обоими языками под крышкой (по крайней мере, с новейшими версиями)

4
ответ дан 4 December 2019 в 07:23
поделиться

Это также может быть хорошей иллюстрацией к небольшим различиям в использовании: Linq Training Guide

1
ответ дан 4 December 2019 в 07:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: