代码将生成编译错误

时间:2011-08-20 17:48:19

标签: c#

以下代码将生成编译器错误。

string GetAgePhrase(int age) 
   {
     if (age > 50) return "Naresh";
     if (age > 30) return "Ravi";
     if (age > 10) return "Nagendra";
     if (age > 9) return "Jagan";
     if (age > 2) return "Raja";
   }

以下哪个语句插入为最后一行 功能,会解决问题吗?

2 个答案:

答案 0 :(得分:2)

这段代码的问题在于并非代码的所有路径都返回一个值...即如果年龄为0会怎样?您可以通过在最后一个if语句return null之后添加此方法来解决此问题,如果没有满足任何条件,它将始终具有返回值。

答案 1 :(得分:0)

您的方法并不总是返回一个值,因此只是在所有if语句之后返回一个默认值。

   string GetAgePhrase(int age) 
   {
     if (age > 50) return "Naresh";
     if (age > 30) return "Ravi";
     if (age > 10) return "Nagendra";
     if (age > 9) return "Jagan";
     if (age > 2) return "Raja";

     return null;
   }