如何正确使用return语句和if else语句?

时间:2013-12-07 00:49:47

标签: asp.net if-statement return

如果第一个条件为假,我想返回不同的读数。我怎么做到这一点?

           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;
        }

2 个答案:

答案 0 :(得分:1)

您的else逻辑存在缺陷,因为如果reader没有行,则else无法使用不存在的行中的"Incorrect"字段,因为没有实际上已读取数据且reader为空。

至于你的语法,试试这个:

// 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

答案 1 :(得分:0)

简单试试这个。只需要两行。

   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" );