【问题标题】:How to correctly use return statements along with an if else statement?如何正确使用 return 语句和 if else 语句?
【发布时间】:2013-12-07 00:49:47
【问题描述】:
如果第一个条件为假,我想返回不同的读取。我将如何做到这一点?
if (reader.HasRows == true)
{
reader.Read();
Answers a = new Answers( reader["Correct"].ToString());
Answer= a;
}
return Answer;
else {
Answers Answer = new Answers();
Answers a = new Answers( reader["Incorrect"].ToString());
Answer= a;
}
return Answer;
}
【问题讨论】:
标签:
asp.net
if-statement
return
【解决方案1】:
您的else 逻辑有缺陷,如果reader 没有行,则else 不能使用不存在行中的"Incorrect" 字段,因为实际上没有读取数据并且@987654325 @ 为空。
至于你的语法,试试这个:
// Are there any rows returned?
if(reader.HasRows)
{
// Yes, so read the first row and grab the "Correct" field and return it
return new Answers(reader["Correct"].ToString());
}
// No data was found
// Return null, because you cannot get to the "Incorrect" field value
return null;
注意:由于这会返回 null,因此您的调用代码会检查 null,因此他们不会得到 NullReferenceException。
【解决方案2】:
简单试试这个。只需要两行。
if (reader.HasRows == true)
{
reader.Read();
return new Answers( reader["Correct"].ToString());//return correct if reader return any values
}
return new Answers( "Incorrect Values" );//return incorrect if reader not return any values
}
或者简单试试这个三元运算符,不需要任何if else条件。
return reader.HasRows == true ? new Answers( reader["Correct"].ToString()):new Answers( "Incorrect Values" );