27 votes

C # 4.0 et .Net 3.5

Nous avons donc enfin VS2010 sur certaines stations de développement au travail et pouvons utiliser les fonctionnalités C # 4.0. Bien que la plupart de ce que nous développons devra encore cibler .Net 3.5 pour le moment.

Lorsque je démarre un nouveau projet et que je définis la cible sur .Net 3.5, cela me permet toujours d'utiliser C # 4.0 comme dynamique. Pouvez-vous donc utiliser les fonctionnalités C # 4.0 tout en ciblant .net 3.5 et ces fonctionnalités fonctionneront-elles dans des environnements où .Net 4.0 n'est pas disponible?

Merci.

41voto

Aaronaught Points 73049

dynamic code ne compile pas, si vous ciblez les .NET framework 3.5.

Pour être plus clair, le compilateur va vous permettre de définir et d' attribuer un dynamic variable, tels que:

dynamic x = 3;

Qu'une seule ligne de code de la compilation, car dynamic seulement compile object autant que les types sont concernés. Mais si vous essayez de faire quelque chose avec cette variable, comme dans:

Console.WriteLine(x);

... puis le compilateur aurait pour générer du code à découvrir/forcer le type réel, qui ne peut pas faire; vous aurez la suite des erreurs de compilation:

  1. Type prédéfini 'de Microsoft.CSharp.RuntimeBinder.Binder " n'est pas défini ou importés
  2. Un ou plusieurs des types requis pour compiler une expression dynamique ne peut pas être trouvé. Êtes-vous manque des références à Microsoft.CSharp.dll et System.Core.dll?

Le C# 4 compilateur s'appuie sur le DLR et plus précisément à la Microsoft.CSharp assemblée pour tout ce qui concerne l' dynamic. Ces ne sont pas disponibles dans .NET 3.5. Donc la réponse est non, vous ne pouvez pas utiliser dynamic lors du ciblage de Framework version 3.5.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X