Maison  >  Article  >  développement back-end  >  Méthodes surchargées et ambiguïté en C#

Méthodes surchargées et ambiguïté en C#

WBOY
WBOYavant
2023-09-06 08:45:10724parcourir

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 -

Exemple

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é.

Exemple

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer