How to fix “No overload for method ' ' takes 0 arguments”?

情到浓时终转凉″ 提交于 2019-11-26 11:36:36

问题


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

回答1:


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);



回答2:


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);
}



回答3:


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.




回答4:


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);



回答5:


fresh.output() expect 2 parameters and you're not providing them



来源:https://stackoverflow.com/questions/19517794/how-to-fix-no-overload-for-method-takes-0-arguments

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!