C# Language
Arguments nommés et facultatifs
Recherche…
Remarques
Arguments nommés
Ref: Les arguments nommés MSDN vous permettent de spécifier un argument pour un paramètre particulier en associant l'argument au nom du paramètre plutôt qu'à la position du paramètre dans la liste des paramètres.
Comme indiqué par MSDN, un argument nommé,
- Vous permet de passer l'argument à la fonction en associant le nom du paramètre.
- Pas besoin de se souvenir de la position des paramètres que nous ne connaissons pas toujours.
- Pas besoin de regarder l'ordre des paramètres dans la liste de paramètres de la fonction appelée.
- Nous pouvons spécifier le paramètre pour chaque argument par son nom.
Arguments optionnels
Ref: MSDN La définition d'une méthode, d'un constructeur, d'un indexeur ou d'un délégué peut spécifier que ses paramètres sont obligatoires ou qu'ils sont facultatifs. Tout appel doit fournir des arguments pour tous les paramètres requis, mais peut omettre des arguments pour des paramètres facultatifs.
Comme indiqué par MSDN, un argument facultatif,
- Nous pouvons omettre l'argument dans l'appel si cet argument est un argument optionnel
- Chaque argument optionnel a sa propre valeur par défaut
- Il faudra une valeur par défaut si nous ne fournissons pas la valeur
- Une valeur par défaut d'un argument facultatif doit être un
- Expression constante
- Doit être un type de valeur tel que enum ou struct.
- Doit être une expression du formulaire par défaut (valueType)
- Il doit être défini à la fin de la liste des paramètres
Arguments nommés
Considérez ce qui suit est notre appel de fonction.
FindArea(120, 56);
Dans ce cas, notre premier argument est length (ie 120) et le second argument est width (ie 56). Et nous calculons la superficie par cette fonction. Et voici la définition de la fonction.
private static double FindArea(int length, int width)
{
try
{
return (length* width);
}
catch (Exception)
{
throw new NotImplementedException();
}
}
Donc, dans le premier appel de fonction, nous venons de passer les arguments par sa position. Droite?
double area;
Console.WriteLine("Area with positioned argument is: ");
area = FindArea(120, 56);
Console.WriteLine(area);
Console.Read();
Si vous exécutez ceci, vous obtiendrez une sortie comme suit.
Maintenant, voici les caractéristiques d'un argument nommé. Veuillez consulter l'appel de fonction précédent.
Console.WriteLine("Area with Named argument is: ");
area = FindArea(length: 120, width: 56);
Console.WriteLine(area);
Console.Read();
Nous donnons ici les arguments nommés dans l’appel de méthode.
area = FindArea(length: 120, width: 56);
Maintenant, si vous exécutez ce programme, vous obtiendrez le même résultat. Nous pouvons donner les noms vice-versa dans l'appel à la méthode si nous utilisons les arguments nommés.
Console.WriteLine("Area with Named argument vice versa is: ");
area = FindArea(width: 120, length: 56);
Console.WriteLine(area);
Console.Read();
L'une des utilisations importantes d'un argument nommé est que, lorsque vous l'utilisez dans votre programme, il améliore la lisibilité de votre code. Il dit simplement ce que votre argument doit être, ou ce que c'est?
Vous pouvez aussi donner les arguments de position. Cela signifie une combinaison de l'argument positionnel et de l'argument nommé.
Console.WriteLine("Area with Named argument Positional Argument : ");
area = FindArea(120, width: 56);
Console.WriteLine(area);
Console.Read();
Dans l'exemple ci-dessus, nous avons passé 120 en tant que longueur et 56 en tant qu'argument nommé pour la largeur du paramètre.
Il y a aussi des limites. Nous allons discuter de la limitation d'un argument nommé maintenant.
Limitation de l'utilisation d'un argument nommé
La spécification d'argument nommé doit apparaître après que tous les arguments fixes ont été spécifiés.
Si vous utilisez un argument nommé avant un argument fixe, vous obtiendrez une erreur de compilation comme suit.
La spécification d'argument nommé doit apparaître après que tous les arguments fixes ont été spécifiés
Arguments optionnels
Considérer précédent est notre définition de fonction avec des arguments facultatifs.
private static double FindAreaWithOptional(int length, int width=56)
{
try
{
return (length * width);
}
catch (Exception)
{
throw new NotImplementedException();
}
}
Ici, nous avons défini la valeur de largeur comme facultative et nous avons donné la valeur 56. Si vous remarquez, l'IntelliSense lui-même affiche l'argument facultatif, comme indiqué dans l'image ci-dessous.
Console.WriteLine("Area with Optional Argument : ");
area = FindAreaWithOptional(120);
Console.WriteLine(area);
Console.Read();
Notez que nous n'avons pas eu d'erreur lors de la compilation et cela vous donnera un résultat comme suit.
Utiliser un attribut facultatif.
Une autre façon d'implémenter l'argument optionnel consiste à utiliser le mot clé [Optional]
. Si vous ne transmettez pas la valeur de l'argument facultatif, la valeur par défaut de ce type de données est affectée à cet argument. Le mot clé Optional
est présent dans l'espace de noms «Runtime.InteropServices».
using System.Runtime.InteropServices;
private static double FindAreaWithOptional(int length, [Optional]int width)
{
try
{
return (length * width);
}
catch (Exception)
{
throw new NotImplementedException();
}
}
area = FindAreaWithOptional(120); //area=0
Et quand nous appelons la fonction, nous obtenons 0 car le deuxième argument n'est pas passé et la valeur par défaut de int est 0 et donc le produit est 0.