如何修复“方法没有重载”需要0参数“?
我该如何解决这个错误?
“方法’输出’没有重载需要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(); } } }
它告诉你方法“输出”需要参数。 这是“输出”的签名:
public override void output(double o, double tw, double th, double f)
所以,如果你想打电话,你需要传递四个双打。
fresh.output(thing1,thing2,thing3,thing4);
或者使用硬编码值作为示例:
fresh.output(1,2,3,4);
没有名为output
的方法接受0个参数,只有一个接受4个参数。 您必须将参数传递给output()
:
foreach (Numbers fresh in chosen) { fresh.output(o, tw, th, f); }
您使用0(零)参数调用output
方法,但您已声明它接收4个双精度值。 编译器不知道它应该调用什么,因为没有没有参数的output
方法。
所有方法output
的实现都带有参数。 提供参数,你应该能够编译。
像这样:
fresh.output(1, 2, 3, 4);
fresh.output()
2个参数而你没有提供它们
上述就是C#学习教程:如何修复“方法没有重载”需要0参数“?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1034941.html