web-dev-qa-db-fra.com

Comment réparer "pas de surcharge pour la méthode '' prend des arguments"?

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();
        }
    }
}
4
User

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);
10
Bill Gregg

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);
}
3
Chris Mantle

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.

0
codeling

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);
0
Mikael Östberg

fresh.output() attend 2 paramètres et vous ne les fournissez pas

0
Manoj Naik