Comment puis-je faire une méthode des valeurs par défaut pour les paramètres? P>
4 Réponses :
Vous les déclarez simplement les déclarer avec les valeurs par défaut - elles sont appelées Paramètres facultatifs A>: public void myMethod(string param1 = "default", int param2 = 3)
{
}
C # 4.0 vous permet d'utiliser Arguments nommés et optionnels : < Pré> xxx pré>
dans les versions précédentes, vous pouvez
Vous ne pouvez faire que cela en C # 4, qui a introduit à la fois nommé arguments et Paramètres facultatifs :
public void Foo(int x = 10) { Console.WriteLine(x); } ... Foo(); // Prints 10
par défaut (t) code> pour un type t code> li>
ul> Notez également que la valeur par défaut est intégrée à l'assemblage EM> de l'appelant (en supposant que vous omettez l'argument correspondant) - donc si vous modifiez la valeur par défaut sans reconstruire le code d'appel, vous. ll Voir toujours l'ancienne valeur. P> Ceci (et d'autres nouvelles fonctionnalités du C # 4) sont couverts dans la deuxième édition de C # en profondeur . (Chapitre 13 Dans ce cas.) P> p>
Lien vers le C # en profondeur code> Le livre est faux. Le site Web code> manning.com code> renvoie un fichier PHP qui redirige vers un site Web qui ne peut pas être chargé.
@Nikolaykostov: Humbug - programme d'affiliation a changé il y a quelque temps. J'ai inclus un lien plus simple ici.
Une solution simple consiste à surcharger la méthode:
C'est toujours une bonne solution, même en C # 4. Un avantage est que les valeurs par défaut sont intégrées dans votre montage plutôt que les appelants; Voir la réponse de Jon pour plus de détails.
@Dan: Je suis devenu de plus en plus sceptique sur le problème réel i> dommages du "Vous ne pouvez pas modifier les valeurs par défaut". Parce que pour la plupart du code, je m'attends à ce que toute l'application soit recompanée quand même . C'est quelque chose qui vaut la peine de savoir, mais je ne pense pas que ce soit vraiment un problème énorme.
@Jon, je suis enclin à être d'accord avec vous, car je pense que ce serait probablement une mauvaise pratique de s'appuyer sur des valeurs par défaut particulières, dans tous les cas, comme cela semblerait indiquer que la nature de l'API a changé. Si tel est le cas, le client doit probablement changer de toute façon.
Dupliqué possible de Comment utiliser des paramètres facultatifs dans C #?