Si j'ai Visual Studio 2008 et que je cible une application .NET 2.0, puis-je toujours utiliser des expressions Lambda? Ma compréhension de Lambda Expressions est que c'est une fonctionnalité intégrée dans le compilateur, pas le framework, donc ma conclusion serait que je pourrais utiliser Lambda dans l'application .NET 2.0. Quelqu'un peut-il me dire si c'est le cas?Expressions Lambda VB.NET
Répondre
Oui, cela est complètement pris en charge. Tant que vous ne construisez pas d'arbre d'expression ou que vous ne faites pas référence à System.Core, System.Xml.Linq, etc ... il est parfaitement légal d'utiliser des expressions Lambda dans une application 2.0. Cela est vrai pour toute autre fonctionnalité du compilateur introduite dans VS2008 (VB9).
EDIT
Plusieurs réponses indiquent à tort que Lambda expressions sont une caractéristique de la fonction 3.5 ou 3.0. Les expressions lambda sont une fonctionnalité du compilateur et non une structure. Ils ne nécessitent aucun support de structure pour fonctionner et il est parfaitement légal de les utiliser dans une application vers 2.0.
Le seul endroit où vous auriez des problèmes serait si vous utilisiez un lambda comme arbre d'expression. Les arbres d'expression sont à la fois une fonctionnalité de compilateur et de structure et nécessitent 3.5 pour fonctionner correctement. Mais vous devez travailler dur pour permettre cela car nous essayons activement d'empêcher cela.
Cela ne fonctionne pas. L'utilisation de Linq nécessite que System.Linq fasse partie de l'assembly de framework, ce qui n'est pas le cas pour .NET 2.0.
Oui, vous avez raison. Vous pouvez utiliser des expressions lambda à la place de méthodes anonymes. Le compilateur va trier le reste. Essayez ceci:
int sum = 0;
Array.ForEach(new[] {1, 2, 3, 4}, x => sum += x);
Ce que vous ne pouvez pas faire est d'utiliser l'une des nouvelles fonctionnalités de .Net 3.5 (c.-à-Linq.). Pour ce faire, vous devez ajouter des références à System.Linq, System.Core, etc., qui ne sont pas présentes dans .Net 2.0.
- 1. LINQ to Lambda Expressions
- 2. Expressions linq/lambda
- 3. Expressions lambda de construction dynamique
- 4. C# expressions Lambda et NHibernate
- 5. PrincipalSearchResult <Principal>, Expressions lambda
- 6. Expressions lambda, comment rechercher dans un objet?
- 7. Comment écrire des expressions lambda fortement typées?
- 8. LINQ to Entities: Les expressions lambda
- 9. C#, expressions lambda, où est l'erreur?
- 10. Stumped sur Entity Framework & Expressions Lambda
- 11. Expression lambda de C# à VB.Net
- 12. différence entre les expressions lambda et les méthodes anonymes - C#
- 13. Débogage des expressions lambda dans Visual Studio 2008
- 14. combinant des expressions lambda aux chemins de propriété
- 15. Les expressions Lambda et Linq suivantes sont-elles équivalentes?
- 16. Création dynamique d'un menu dans Tkinter. (expressions lambda?)
- 17. De quelle manière utilisez-vous les expressions C# Lambda?
- 18. Appel de sous-programmes à partir de lambda dans vb.net
- 19. Comment déclarer les gestionnaires d'événements lambda dans VB.Net?
- 20. Lambda Exemple
- 21. Lambda expression exercice
- 22. Quelle est l'équivalence d'un objet SQL WHERE dans les expressions Lambda?
- 23. Est-il mauvais que les expressions lambda de C++ 0x n'aient pas de type nommé?
- 24. Quelle est la différence entre les méthodes anonymes (C# 2.0) et les expressions lambda (C# 3.0)?
- 25. Quand utiliser des expressions lambda à la place d'une clause Where dans LINQ
- 26. Comment formater des expressions lambda et des méthodes anonymes pour une lisibilité maximale?
- 27. Lambda question
- 28. Syntaxe des requêtes LINQ sur Lambda
- 29. Utilisation de Lambda dans Test d'unité dans VB.NET 2008 avec Rhino.Mocks
- 30. Problème lors de la déclaration d'une méthode anonyme avec vb.net Action (Of T) et lambda
oui, dandan a raison. En outre, non, vous ne pouvez pas référencer les assemblages 3.5 en les mettant simplement dans votre bac. J'ai demandé ... le problème est qu'il y a eu beaucoup de changements dans l'espace de noms du système aussi. – andy
Ce n'est pas le cas. LINQ est certainement supporté en utilisant un compilateur 3.5 (Vb9) pour cibler une application 2.0 à condition que vous ayez des méthodes LINQ suffisamment disponibles telles que Select et Where. True pour C# aussi – JaredPar