Maison > Article > développement back-end > Méthodes surchargées et ambiguïté en C#
Avec la surcharge de méthode, vous pouvez avoir plusieurs définitions du même nom de fonction dans la même portée. Les définitions de fonctions doivent différer par le type et/ou le nombre de paramètres dans la liste des paramètres.
Regardons un exemple. Ici, l'appel va à une méthode avec un seul paramètre -
using System; class Student { static void DisplayMarks(int marks1 = 90) { Console.WriteLine("Method with one parameter!"); } static void DisplayMarks(int marks1, int marks2 = 95) { Console.WriteLine("Method with two parameters!"); } static void Main() { DisplayMarks(97); } }
Voyons maintenant ce qui crée un appel ambigu. La confusion ici est que la deuxième méthode nécessite deux paramètres par défaut, tandis que la première méthode nécessite qu'un paramètre soit par défaut. Cela crée une ambiguïté.
using System; class Student { static void DisplayMarks(int marks1 = 90, int marks2 = 80) { Console.WriteLine("Method with two parameters!"); } static void DisplayMarks(int marks1, int marks2 = 80, marks3 = 98) { Console.WriteLine("Method with three parameters!"); } static void Main() { DisplayMarks(80); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!