方法声明中有返回类型定义,而方法中有一种执行方式没有返回值.
例如下面的方法,当var为假时方法没有返回值,就会在编译时报错"并非所有的代码路径都返回值"
public string GetSome(bool var)
{
if(var)
{
return "True";
}
}
在返回值的函数中,一定要保证无论程序走哪个分支都会正常的用return来返回一个值.
public string GetSome(bool var)
{
if(var)
{
return "true";
}
return "false";
}
再看下代码:
public static bool asdf()
{
for ( int i = 0 ; i < 30 ; i++ )
for ( int i = 0 ; i < 30 ; i++ )
{
if ( i == 29 )
return true;
else
return false;
}
}
因为你知道for一定会执行并且返回值。
if ( i == 29 )
return true;
else
return false;
}
}
因为你知道for一定会执行并且返回值。
对于编译器来说,比如你的for语句没有执行。(for ( int i = 40 ; i < 30 ; i++ ))那么这个函数是没有返回值的。
按照你的方法,最简单的改动如下。
public static bool asdf()
public static bool asdf()
{
for ( int i = 0 ; i < 30 ; i++ )
for ( int i = 0 ; i < 30 ; i++ )
{
if ( i == 29 )
return true;
else
return false;
}
return false;
}
if ( i == 29 )
return true;
else
return false;
}
return false;
}