C# 方法“WeightOut”没有重载,它有2个参数
方法“WeightOut”没有重载,它有2个参数 在我调整代码以使其更高效之前,我的代码正在运行 这是工作代码: 在基类中,我有:C# 方法“WeightOut”没有重载,它有2个参数,c#,winforms,syntax,C#,Winforms,Syntax,方法“WeightOut”没有重载,它有2个参数 在我调整代码以使其更高效之前,我的代码正在运行 这是工作代码: 在基类中,我有: public virtual double WeightOut(double weightOut, double wightIn) { return Math.Round((weightOut = (weightIn + 0.12)), 2); } public override double WeightO
public virtual double WeightOut(double weightOut, double wightIn)
{
return Math.Round((weightOut = (weightIn + 0.12)), 2);
}
public override double WeightOut(double weightOut, double weightIn)
{
return Math.Round((this.WeightIn() + 0.12), 2);
}
在继承的类中,我有:
public virtual double WeightOut(double weightOut, double wightIn)
{
return Math.Round((weightOut = (weightIn + 0.12)), 2);
}
public override double WeightOut(double weightOut, double weightIn)
{
return Math.Round((this.WeightIn() + 0.12), 2);
}
然后我对其进行了更改,这样我就不会在两个类中使用相同的代码,而是只在继承的类中使用相同的代码:
在基类中:
public abstract double WeightOut();
在继承的类中:
public override double WeightOut()
{
return Math.Round((this.WeightIn() + 0.12), 2);
}
然后,我在使用这行代码进行编译时遇到语法错误,这行代码来自同一个Inherited类中的weighout方法:
public override double HowMuchTheFishWeighOutKG()
{
return this.FishPerTank() * this.WeightOut(0, 0) * this.Tanks();
}
于是我把它改成:
public override double HowMuchTheFishWeighOutKG()
{
return this.FishPerTank() * this.WeightOut() * this.Tanks();
}
语法错误仍然存在:
方法“WeightOut”的重载不包含2个参数
另一个较小的问题
它告诉我错误在哪里:37,59
但是VisualStudio没有告诉我它在哪里,我必须自己数一数才能找到它在哪里。我要检查以下几点: 在基类中,您确定WeightOut的抽象方法没有参数吗。发出的投诉可能与继承函数定义的不匹配有关 要检查的第二件事是,右键单击继承的类加权函数,特别是函数名,然后选择“查找所有引用”选项。这将按类名/文件名和行号列出代码中调用此函数的每个位置。这可能会有帮助 注意:如果您没有该选项,请详细说明您使用的是哪个版本的Visual Studio 另请注意:这可以通过在文件中查找以及函数名来完成。此搜索将返回更多的误报,但仍将定位对函数的所有引用
此外,即使在vs 2005中,如果双击“错误”框中的错误,它也会将光标放在导致问题的行上,或者更确切地说放在引发错误的行上,如果它不是代码行,而是类似于结束},那么这会告诉我们一些不同的情况。不清楚最终会出现什么错误。这是什么错误?在代码的某个地方,您正在使用2个参数调用WeightOut。您会失望地发现return Math.RoundweightOut=weightIn+0.12,2不会将值返回给您的调用方法。签出关键字。您是否尝试过“构建”菜单中的“清洁解决方案”?如果visual studio为您提供了一个自己无法找到的位置,它有时会有所帮助。代码:return Math.RoundweightOut=weightIn+0.12,2工作得非常好,我已经对它进行了测试。这不是问题所在。问题是,正如Jason所说,在我的代码中的某个地方,我调用WeightOut时显然带有两个参数,尽管我已经阅读了我的代码,正如你从我发布的内容中所看到的,我已经将其全部更改为不调用两个参数。。。但我仍然收到了这个错误。