在RANK = 2
处收到此错误,我无法弄清楚如何解决此问题。当我在网上查找错误时,大多数答案都说使方法成为十进制而不是void,因此它可以有一个返回类型。
但是代码的部分要求"通过使其成为void函数并添加表示此方法返回的未来值金额的第四个参数来重写CalculateFutureValue方法。"
futureValue = this.CalculateFutureValue(futureValue, monthlyInvestment, monthlyInterestRate, months);
/
private void btnCalculate_Click(object sender, EventArgs e)
{
decimal monthlyInvestment = Convert.ToDecimal(txtMonthlyInvestment.Text);
decimal yearlyInterestRate = Convert.ToDecimal(txtInterestRate.Text);
int years = Convert.ToInt32(txtYears.Text);
int months = years * 12;
decimal monthlyInterestRate = yearlyInterestRate / 12 / 100;
decimal futureValue = 0m;
futureValue = this.CalculateFutureValue(futureValue, monthlyInvestment, monthlyInterestRate, months);
txtFutureValue.Text = futureValue.ToString("c");
txtMonthlyInvestment.Focus();
}
答案 0 :(得分:3)
这是他们的要求:而不是这个
decimal ComputeSomething(decimal x, decimal y) {
return x*x + y*y;
}
...
decimal result = ComputeSomething(10.234M, 20.5M);
这样做:
void ComputeSomething(decimal x, decimal y, out res) {
res = x*x + y*y;
}
...
decimal result;
ComputeSomething(10.234M, 20.5M, out result);
请注意附加参数out
前面的res
限定符。这意味着参数是"输出",即您的方法必须在完成之前为其指定一些值。
res
内ComputeSomething
的作业将成为变量result
的作业。
答案 1 :(得分:2)
您需要通过引用传递变量:
private void CalculateFutureValue(ref decimal futureValue, decimal monthlyInvestment, decimal monthlyInterestRate, int months){ ... }
和
this.CalculateFutureValue(ref futureValue, monthlyInvestment, monthlyInterestRate, months);
如果在将futureValue
传递给CalculateFutureValue
之前尚未使用值初始化out
,则需要使用ref
关键字代替<p>
。