2009-03-20 7 views
1

est C# 4 la mise en œuvre des paramètres en option le même que VB.NET, le paramètre optionnel est compilé sur le site d'appel (peut causer des problèmes de versioning)?C# 4 paramètre optionnel

Répondre

4

Yes.

+2

Cela ajoute une faiblesse sérieuse à C#. Le fait que optionnel soit implémenté sur le site d'appel plutôt que comme une surcharge signifie que les assemblages qui ne sont pas construits les uns contre les autres ne fonctionneront pas si un parmaeter optionnel est changé. Je ne vois pas pourquoi nous en avons besoin. La surcharge donne la même fonctionnalité et les signatures de méthodes ne sont jamais modifiées de manière invisible. – stevehipwell

+0

La valeur par défaut fait partie de la définition de la fonction. Le changer est tout aussi mauvais que de changer le nom de la fonction. Cela est tout aussi vrai lorsque la valeur par défaut est surchargée comme lorsqu'elle est exposée via un paramètre optionnel. –

3

Selon SamNg, C#'s default arguments are is compiled at the call site, semblable par défaut des paramètres en C++.

Oui, cela causerait des problèmes versioning. Cependant, des paramètres optionnels doivent être utilisés lorsque cela est logique. Dans de nombreux cas, cela signifie que vous devez passer une classe null ou une classe construite par défaut à une méthode ou un constructeur.

+0

FIXME: Qui est Sam Ng? Est-il un développeur M $? – strager

+1

Je pense que tous les blogueurs sur blogs.msdn.com sont des employés MS (peut-être certains sont MVPs?). –

Questions connexes