Reputation: 159
How can I fix this error?
"No overload for method 'output' takes 0 arguments".
The error is at the very bottom at "fresh.output();".
I don't know what I'm doing wrong. Can someone tell me what I should do to fix the code?
Here is my 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();
}
}
}
Upvotes: 11
Views: 109383
Reputation: 7147
It's telling you that the method "output" needs arguments. Here's the signature for "output":
public override void output(double o, double tw, double th, double f)
So if you want to call that you need to pass in four doubles.
fresh.output(thing1,thing2,thing3,thing4);
Or to use hard coded values as an example:
fresh.output(1,2,3,4);
Upvotes: 11
Reputation: 396
fresh.output()
expect 2 parameters and you're not providing them
Upvotes: 0
Reputation: 6683
There's no method named output
that takes 0 arguments, there's only one that accepts 4 arguments. You must pass parameters to output()
:
foreach (Numbers fresh in chosen)
{
fresh.output(o, tw, th, f);
}
Upvotes: 6
Reputation: 17156
All your implementations of method output
takes arguments. Supply the arguments and you should be able to compile.
Like this:
fresh.output(1, 2, 3, 4);
Upvotes: 0
Reputation: 11379
You're calling the output
method with 0 (zero) parameters, but you have declared it to receive 4 double values. The compiler doesn't know what it should call, since there is no output
method with no parameter.
Upvotes: 0