j'ai essayé le code suivant:C# et nombre variable de paramètres
class Program: ProgParent
{
public int Max(params int[] op)
{
return 0;
}
public int Max(int i, params int[] op)
{
return 1;
}
public int Max(int i, int j, params int[] op)
{
return 2;
}
public static void Main(string[] args)
{
System.Console.WriteLine((new Program()).Max(5, 6, 7, 8));
System.Console.ReadKey();
}
}
Il exécute et utilise la fonction plus spécifique disponible. Mais le compilateur ne donne aucun avertissement ou erreur à ce sujet. Pourquoi?
Votre code ne compile pas - les deux premières signatures de méthode sont identiques. Après avoir enlevé l'un d'eux, c'est bien. Pourquoi ne le serait-il pas? –
Oui, c'était la version originale, je voulais juste ajouter une nouvelle méthode ici – Dutow
votre code ne fait que très bien, après avoir supprimé la classe de base (classe Program au lieu de classe Program: ProgParent). Je ne sais pas où est ton problème? – Vimvq1987