C#中" 並非所有的程式碼路徑都返回值" ---FOR
阿新 • • 發佈:2019-01-07
方法宣告中有返回型別定義,而方法中有一種執行方式沒有返回值.
例如下面的方法,當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++ ) {
if ( i == 29 )
return true;
else
return false;
}
}
因為你知道for一定會執行並且返回值。 對於編譯器來說,比如你的for語句沒有執行。(for ( int i = 40 ; i < 30 ; i++ ))那麼這個函式是沒有返回值的。 按照你的方法,最簡單的改動如下。
public static bool asdf() {
for ( int i = 0 ; i < 30 ; i++ ) {
if ( i == 29 )
return true;
else
return false;
}
return false;
}