Comment puis-je réparer cette erreur?
"Aucune surcharge pour la méthode 'sortie' ne prend 0 argument".
L'erreur est tout en bas à "fresh.output ();".
Je ne sais pas ce que je fais mal. Quelqu'un peut-il me dire ce que je devrais faire pour corriger le code?
Voici mon code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication_program
{
public class Numbers
{
public double one, two, three, four;
public virtual void output(double o, double tw, double th, double f)
{
one = o;
two = tw;
three = th;
four = f;
}
}
public class IntegerOne : Numbers
{
public override void output(double o, double tw, double th, double f)
{
Console.WriteLine("First number is {0}, second number is {1}, and third number is {2}", one, two, three);
}
}
public class IntegerTwo : Numbers
{
public override void output(double o, double tw, double th, double f)
{
Console.WriteLine("Fourth number is {0}", four);
}
}
class program
{
static void Main(string[] args)
{
Numbers[] chosen = new Numbers[2];
chosen[0] = new IntegerOne();
chosen[1] = new IntegerTwo();
foreach (Numbers fresh in chosen)
{
fresh.output();
}
Console.ReadLine();
}
}
}
Cela vous dit que la méthode "output" a besoin d'arguments. Voici la signature pour "sortie":
public override void output(double o, double tw, double th, double f)
Donc, si vous voulez appeler cela, vous devez passer quatre fois en double.
fresh.output(thing1,thing2,thing3,thing4);
Ou utiliser des valeurs codées en dur comme exemple:
fresh.output(1,2,3,4);
Il n'y a pas de méthode nommée output
qui prend 0 argument, il n'y en a qu'une qui accepte 4 arguments. Vous devez passer les paramètres à output()
:
foreach (Numbers fresh in chosen)
{
fresh.output(o, tw, th, f);
}
Vous appelez la méthode output
avec des paramètres 0 (zéro), mais vous l'avez déclarée recevoir 4 valeurs doubles. Le compilateur ne sait pas ce qu'il doit appeler car il n'y a pas de méthode output
sans paramètre.
Toutes vos implémentations de la méthode output
prennent des arguments. Fournissez les arguments et vous devriez pouvoir compiler.
Comme ça:
fresh.output(1, 2, 3, 4);
fresh.output()
attend 2 paramètres et vous ne les fournissez pas