Valeur par défaut dans une fonction C #
est-il possible de faire cela en C#? (en C++ de ses pas)
function sum ( int a = 9, int b = 4){
}
et ensuite appeler la fonction comme :
int someValue = sum(, 14) //so 14 is for the second value
source d'informationauteur Ahoura Ghotbi
Vous devez vous connecter pour publier un commentaire.
C# 4 permet arguments nommés et les paramètres facultatifs1:
Alors:
EDIT: Pour les méthodes surchargées, s'il y a plusieurs matches, le compilateur vérifie si l'une de ces candidats sont valables uniquement en raison de donner des valeurs par défaut. Si c'est le cas, ces candidats sont efficacement traitées en priorité. C'est l'un des bris d'égalité-les règles énumérées dans la section 7.5.3.2. Il n'y a pas de préférence pour juste à l'aide de "moins de" valeurs par défaut; c'est une approche du tout ou rien. Je donne un exemple de cela dans mon article sur la surcharge.
1 C'est dommage que la terminologie est souvent confondu, même par Microsoft. Les paramètres ont toujours des noms - ce qui est nouveau, c'est que vous pouvez spécifier le nom de la appel code, pour l'argument. D'autre part, vous assurez le paramètre facultatif en spécifiant une valeur par défaut.
Avec C# 4, vous pouvez le faire
int someValue = sum (b: 14);
ÉDITER en tant que par commentaires:
C++ peuvent avoir des valeurs par défaut pour les paramètres... ces paramètres peuvent être "sauté" lors de l'appel d'une méthode/fonction, MAIS la règle en C++, c'est que seul le bouton droit de la plupart des paramètres peuvent être ignorés... c'est possible en C++ pour appeler
sum()
etsum (7)
se référant àa
mais PAS à l'appel que vous donnez en exemple...Oui, depuis .NET 4 Cadre de ce qui est possible à l'aide de Les Arguments Optionnels
Ensuite l'appeler:
Oui, c'est possible en C# en utilisant nommé et arguments optionnels.
Le résultat sera fixé à 2 et b ayant sa valeur par défaut, 2. Il sera toujours remplir les arguments dans l'ordre, donc, si vous passez un argument, puis seulement est défini et le reste va utiliser les valeurs par défaut.
Cela aura pour résultat une valeur par défaut 1 et b est définie par défaut 2. Comme aucun des arguments ont été fournis.
Il en résultera un avoir de la valeur par défaut de 1, et b étant fixé à 4. La raison de l'ordre des arguments est ignoré dans ce cas est que nous sommes en précisant que b doit être réglé à 4 à l'aide d'un argument nommé.