Question

Je souhaite écrire une bibliothèque qui utilise la nouvelle fonctionnalité de paramètres facultatifs de C # 4.0, mais je souhaite la cibler sur la version 3.5 du framework. Est-ce possible?

Les paramètres facultatifs sont-ils sucre comme les méthodes d’extension?

Était-ce utile?

La solution

Avec VS2010 RC, j'ai pu créer une application .NET 3.5 utilisant des paramètres facultatifs en C #.

Alors oui, tout est une question de sucre syntaxique.

Autres conseils

VS 2010 prend en charge les paramètres facultatifs dans les solutions C # pour .NET 3.5. Un inconvénient, cependant, est que le compilateur en ligne de commande signalera des erreurs.

Ainsi, si vous utilisez des versions automatisées, en utilisant NANT ou quelque chose d'autre en utilisant le compilateur en ligne de commande, vos générations échoueront.

Comme Jon Skeet, le message "Paramètre facultatif" de la fonction ne peut pas être utilisé car il ne fait pas partie de la spécification du langage 3.0 C # "." Toutefois, dans la version RTM de Visual Studio, vous pouvez sélectionner Version linguistique sur " défaut " dans Propriétés du projet - > Construire - > Avancé. Cela a fonctionné pour moi.

Vous pouvez utiliser des paramètres facultatifs et nommés dans une structure ciblée d'une version précédente, à condition que les assemblys soient générés dans un environnement de développement pour v4 (par exemple, VS2010). Mais vous devez savoir que les sites Web de compilation ou de publication à l'exécution sont utilisés. Dans ce cas, le compilateur de la structure ciblée sera utilisé. Et comme les compilateurs des anciens frameworks ne comprennent pas la syntaxe des paramètres optionnels et nommés, des erreurs de compilation s’ensuivront.

Aller aux propriétés du projet - > Onglet Construire - > cliquez sur le bouton "Avancé" - > définir la version linguistique sur 'défaut' - > enregistrer - > être heureux;)

Je n'ai pas installé VS2010 ici pour vérifier, mais j'estime qu'il s'agirait uniquement d'une fonctionnalité de langage et que, par conséquent, il devrait être utilisable quel que soit le cadre ciblé.

Modifier: En regardant ce link (et quelques autres), il apparaît que les paramètres optionnels se compilent en arguments de méthode avec un attribut [opt] dans le il. Je ne sais pas si ce paramètre existait dans les versions précédentes de la clé, mais je suppose que c'est le cas.

VB.NET a des paramètres facultatifs si vous souhaitez utiliser des paramètres facultatifs dans .NET 3.5.

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