使用未分配的本地错误

时间:2014-10-02 09:31:43

标签: c#

我在计算考试成绩方面遇到了问题。

int midterm,finalexam,makeupexam;
double average;
try
{
midterm=Int32.Parse(txtMidterm.Text);
finalexam=Int32.Parse(txtFinal.text);
}
catch
{
txtResult.Text="any mark has not been written";
}
average= midterm*30/100+finalexam*70/100;
if(average>=49.5 && finalexam>50)
{
txt.Result.Text="passed, average: "+average.To.String();
}
else
{
txtResult.Text="makeup stayed";
}
try
{
makeupexam=Int32.Parse(txtMakeUpExam.Text);
}
catch
{
txt.Result.Text="MakeUp's mark has not been written";
}
average= midterm*30/100+makeupexam*70/100;
if(average>=49.5 && makeupexam>50)
{
txtResult.Text="Passed: " + average;
}
else
{
txtResult.Text="failed, average: ", average;
}

该计划正在说"使用未分配的局部变量& midterm,finalexam,makeupexam"请帮助我,谢谢你们:)

3 个答案:

答案 0 :(得分:1)

您正在尝试使用该变量,但它们可能永远不会为其分配值。在开始时将它们设置为0,它应该可以正常工作。

答案 1 :(得分:0)

更改变量声明:

int midterm = 0,finalexam = 0,makeupexam = 0;
double average = 0.0;

这是因为如果你的catch失败,变量永远不会分配,你就无法对未分配的变量执行操作

答案 2 :(得分:0)

未初始化局部变量。您必须手动初始化它们。

局部变量没有默认值。

只需添加以下代码: -

int midterm = 0,finalexam = 0,makeupexam = 0;
double average = 0.0;

它的发生是因为你没有为变量赋值。