J'ai créé un nouveau projet dans Visual Studio avec cadre cible 2.0. Mais même si je suis parti quelque part var code> mot-clé Visual Studio compile avec succès le projet. Est-ce que le comportement correct que
var code> est la fonction 3.0? Y a-t-il des paramètres pour empêcher le code avec
var code> à compiler? P>
4 Réponses :
Voir mon Article de versions pour plus d'informations. (Je dois le mettre à jour pour C # 4 à un moment donné ...) P>
Si vous veux em> pour vous limiter à c # 2.0, vous pouvez spécifier la version linguistique en cliquant sur "Advanced" dans l'onglet Construction des propriétés du projet, IIRC. (C'est certainement là quelque part, mais je préfère avoir une tasse de café que de vérifier l'emplacement exact actuellement.) P> var code> est une fonctionnalité de C # em> 3.0, mais elle ne nécessite aucune fonctionnalité framework em>. En d'autres termes, il est absolument amené à utiliser dans un projet ciblant .NET 2.0. Il en va de même pour de nombreuses autres caractéristiques - types anonymes, propriétés automatiques, expressions Lambda, etc. p>
+1. / Langversion (Options C # Compiler) ( MSDN.MicRosoft.com/en-us/ Bibliothèque / f4ckecs0.aspx )
Merci Jon et Desco! C'est exactement ce que je veux - restreindre les fonctionnalités linguistiques à C # 2.0.
Tant que votre projet sera toujours compilé avec Visual Studio 2008 ou plus récent, vous êtes en sécurité pour utiliser des fonctionnalités C # 3.0. La cible .NET 2.0 ne limite que quelles bibliothèques que vous pouvez utiliser et non quelles fonctionnalités de la langue. P>
Le but pour laquelle j'ai besoin de limiter mon code à 2,0 qu'il est censé être compilé sous Pure .NET Framework 2.0 par la suite.
Un projet qui ciblant la version 2.0 du framework peut toujours utiliser la fonctionnalité var code> est purement une fonctionnalité de compilation, une fois que l'ensemble est compilé, le compilateur insère le type réel em> et le fait que vous aviez utilisé
var < / code> est "perdu". p>
VAR CODE>, car elle n'affecte pas en aucun cas l'assemblage sortidé. P>
Soit faire du texte intégral Remplacement de var par 1var1 et les remplacer manuellement ou utilisez les versions PRE 3.0 du compilateur. P>