7
votes

Comment interdire le mot-clé Var sous la cible .NET 2.0?

J'ai créé un nouveau projet dans Visual Studio avec cadre cible 2.0. Mais même si je suis parti quelque part var mot-clé Visual Studio compile avec succès le projet. Est-ce que le comportement correct que var est la fonction 3.0? Y a-t-il des paramètres pour empêcher le code avec var à compiler?


0 commentaires

4 Réponses :


14
votes

var est une fonctionnalité de C # 3.0, mais elle ne nécessite aucune fonctionnalité framework . 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.

Voir mon Article de versions pour plus d'informations. (Je dois le mettre à jour pour C # 4 à un moment donné ...)

Si vous veux 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.)


2 commentaires

+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.



1
votes

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.


1 commentaires

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.



3
votes

var est purement une fonctionnalité de compilation, une fois que l'ensemble est compilé, le compilateur insère le type réel et le fait que vous aviez utilisé var < / code> est "perdu".

Un projet qui ciblant la version 2.0 du framework peut toujours utiliser la fonctionnalité VAR , car elle n'affecte pas en aucun cas l'assemblage sortidé.


0 commentaires

-1
votes

Soit faire du texte intégral Remplacement de var par 1var1 et les remplacer manuellement ou utilisez les versions PRE 3.0 du compilateur.


0 commentaires