我得到一个错误,在代码中的if语句中的变量intAge下方的红线。它说这个变量是本地的,但是它在代码的开头声明的时候怎么会是本地的呢?它是否与Try/Catch部分有关?我的代码看起来像这样的原因,仅仅是因为我必须在代码中使用Try/Catch来执行此任务。请提供一些建议以相似和正确的方式解决此问题?谢谢!本地变量和Try/Catch
int intAge;
try
{
intAge = int.Parse(age);
}
catch (Exception)
{
MessageBox.Show("Enter an age in numbers!","Error!");
}
finally
{
}
// Check input
if (intAge < 1)
{
inputOk = false;
errorMessage = "Please enter 1 or higher!";
}
这次很容易知道你的错误信息告诉你'intAge'是未初始化的,但下一次包括你得到的实际错误信息。当您的代码示例变得更长和更复杂时,包括错误消息可帮助人们更快地发现问题。 – 2012-07-06 09:03:40
养成使用TryParse API的习惯。 – Zenwalker 2012-07-06 09:09:26
_“局部变量”_仅表示在方法内声明(“已定义”)的变量。所以这是本地的方法。相反的是一个_field_,它是一个在课堂上定义的变量。还有一个_parameter_,它是你的方法签名中声明的一个变量。但是,所有这些与编译时错误无关。 – 2012-07-06 09:13:53