2008-12-03 11 views
2

Tous les ajouts à C# pour la version 4 (dynamiques, contrats de code, etc.) sont-ils attendus sur le .NET CLR actuel ou y a-t-il également une mise à niveau .NET planifiée?Compatibilité C# 4 et CLR

Répondre

5

C# 4 nécessitera le .NET 4.0 CLR.

+1

Je dois avouer, je ne suis pas 100% convaincu par une telle déclaration péremptoire ... certainement .NET 4.0, mais ont vous avez essayé l'une des choses non dynamiques C# 4.0 sur le VS2010 CTP? Malheureusement, je n'ai pas mon CTP disponible pour l'instant ... –

+1

Le compilateur dans VS RC1 compile les arguments "dynamiques" et nommés/optionnels quand je cible 3.5. –

2

Vous n'avez pas à attendre que 4.0 utilise les contrats de code car il s'exécute sur .NET 3.5, le lien de téléchargement pour la version d'aperçu académique est here.

+0

Pour la licence académique VS2008 seulement :( – johnc

+0

Gardez les problèmes de licence de côté, il n'a pas besoin de runtime 4.0 pour s'exécuter, c'est important et sympa –

+0

Wow, c'est génial, je suis impatient de l'essayer, mais je n'ai pas J'ai eu le temps de configurer une boîte VS 2010. –

4

Eh bien, .NET 4.0 nécessitera CLR 4.0; Cependant, il est un peu plus difficile de répondre à quelles parties de C# 4.0 fonctionneront .NET 2.0/3.x. Nous pouvons espérer que le VS2010 sera encore multi-ciblage (je n'ai pas le CTP "sur moi" pour ainsi dire, donc je ne peux pas vérifier ...). Mais certaines des caractéristiques du langage ne semblent pas très liées à l'exécution (paramètres nommés, certaines des modifications COM telles que "ref") - donc je ne peux pas penser à une bonne raison pour laquelle ils ne seraient pas disponibles lorsque vous parlez à .NET 2.0/3.x. Je n'ai pas vérifié, cependant.

Cependant, comme avec C# 3.0, certaines des caractéristiques sont liée à l'exécution - en particulier dynamic.

je dois creuser le CTP et une autre pièce, ... methinks

+0

Je suis d'accord, je peux voir pourquoi dynamique peut avoir besoin d'une mise à jour de clr, mais le code ne contracte pas tellement – johnc

+0

Eh bien, les contrats-codes nécessiteront les attributs eux-mêmes ... et s'ils sont logés dans .NET 4.0 (que je soupçonne qu'ils sont), vous aurez probablement besoin de cibler CLR 4.0 –

+0

Bien qu'il existe une version de contrats de code exécutant .NET 3.5, bien sûr ... –