1
J'ai eu cette question dans une interview, maintenant je sais que j'ai donné une mauvaise réponse. Pourquoi ce programme affiche-t-il un appel ambigu entre les fonctions et ne compile donc pas?appel ambigu entre les fonctions erreur
public static void Display(int? num) {
Console.WriteLine(num);
}
public static void Display(string num) {
Console.WriteLine(num);
}
static void Main() {
Display(1);
Display("1");
Display(null);
Console.ReadLine();
}
Afin de donner cette erreur non seulement il doit y avoir plusieurs méthodes applicables, il doit aussi y avoir * pas de meilleure méthode *. Depuis ni int? ni chaîne est clairement "mieux" que l'autre, les méthodes sont ambiguës. S'il s'agissait à la place d'un objet et d'une chaîne, alors la chaîne serait meilleure car elle est plus spécifique que l'objet. –