这个错误是提示出你定义的方法需要有返回值,但是执行方法体的过程中并不是所有的路径都会返回这个类型的值。这个“所有路径”包括你这个方法从开始执行到方法结束所有可能执行到的语句,也就是如果你的方法中含有if,switch之类的语句,则他们的每一个条件都要有返回值。比如下面定义一个返回值为int的函数:
public int func()
{
int i = 20;
if (i > 10)
return 1;
}
看似好像没有问题,但是编译就会报错:不是所有路径都有返回值。因为当i<=10的时候,方法没有指明要返回什么数值,就好像是少了else判断。一般碰到这样的问题大多是因为我们编写的方法中的条件判断太多而不小心忽视某个分支的返回值,或者像上面代码中只简单写了if而忽略了else。碰到这个错误建议从条件语句入手,很好解决。
|