7

このエラーを修正するにはどうすればよいですか?

「メソッド 'output' のオーバーロードは引数を 0 とらない」.

エラーは「fresh.output();」の一番下にあります。

何が間違っているのかわかりません。コードを修正するために何をすべきか教えてもらえますか?

これが私のコードです:

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

5 に答える 5

11

メソッド「出力」には引数が必要であることを示しています。「出力」の署名は次のとおりです。

public override void output(double o, double tw, double th, double f)

したがって、それをコールしたい場合は、4 つの double を渡す必要があります。

fresh.output(thing1,thing2,thing3,thing4);

または、例としてハードコードされた値を使用するには:

fresh.output(1,2,3,4);
于 2013-10-22T12:25:47.297 に答える
4

0 個の引数を取る名前のメソッドはありませんoutput。4 個の引数を受け取るメソッドは 1 つだけです。にパラメータを渡す必要がありますoutput():

foreach (Numbers fresh in chosen)
{
    fresh.output(o, tw, th, f);
}
于 2013-10-22T12:26:38.753 に答える
0

0 (ゼロ) パラメーターでメソッドを呼び出してoutputいますが、4 つの double 値を受け取るように宣言しています。outputパラメータのないメソッドがないため、コンパイラは何を呼び出せばよいかわかりません。

于 2013-10-22T12:26:01.260 に答える
0

メソッドのすべての実装outputは引数を取ります。引数を指定すると、コンパイルできるはずです。

このような:

fresh.output(1, 2, 3, 4);
于 2013-10-22T12:26:19.697 に答える
0

fresh.output()2 つのパラメーターが必要であり、それらを提供していません

于 2013-10-22T12:27:11.243 に答える