Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 方法“WeightOut”没有重载,它有2个参数_C#_Winforms_Syntax - Fatal编程技术网

C# 方法“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

方法“WeightOut”没有重载,它有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 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时显然带有两个参数,尽管我已经阅读了我的代码,正如你从我发布的内容中所看到的,我已经将其全部更改为不调用两个参数。。。但我仍然收到了这个错误。