Question

Quelles sont les fonctionnalités du langage C # 3.0 que nous pouvons utiliser dans une application qui cible le framework .Net 2.0?

PS: Je connais peu de choses comme les expressions Lambda et les mots clés var

Était-ce utile?

La solution

S'il vous plaît voir ici:

Utilisation de la syntaxe C # 3.0 (.Net 3.5) dans une application .Net 2.0

Pour une description complète de ce que vous pouvez et ne pouvez pas faire lorsque vous ciblez le .NET 2.0 Framework et utilisez C # 3.0.

En résumé:

Les méthodes d’extension, en quelque sorte leur travail, requièrent " System.Runtime.CompilerServices.ExtensionAttribute " afin de fonctionner, et ce type se trouve dans la DLL System.Core (qui ne fait pas strictement partie du framework .NET 2.0).

La syntaxe de requête ne peut pas être utilisée "prête à l'emploi" " pour ainsi dire, il peut être utilisé si une DLL tierce (telle que LINQBridge ) est utilisé. Cette DLL réimplémente effectivement un grand nombre des éléments " manquants " types dont vous avez besoin pour exécuter LINQ lorsque vous ciblez le framework .NET 2.0. Il implémente également le " ExtensionAttribute " type nécessaire au bon fonctionnement des méthodes d’extension. Il suffit donc d’ajouter / référencer la DLL LINQBridge à partir de votre projet pour activer LINQ, la syntaxe de requête / les expressions et les méthodes d’extension!

Autres conseils

J'ai un article sur ce sujet précis .

En bref:

pris en charge:

  • Propriétés implémentées automatiquement, variables locales et tableaux implicitement typés, initialiseurs d'objet et de collection, types anonymes, méthodes partielles, expressions lambda converties en types délégués.

Partiellement pris en charge:

  • Méthodes d'extension (nécessite un attribut) et expressions de requête (requiert quelque chose comme LINQBridge pour être utile)

Non pris en charge:

  • Lambdas convertis en arbres d'expression

En fait, j'ai entendu dire que la conversion en arbres d'expression est disponible à l'aide de la mise en oeuvre par Mono de System.Core . Je ne l’ai pas encore essayé, j’ai toujours l’intention de le faire (puis de mettre à jour la page).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top