1. 程式人生 > >C#中" 並非所有的程式碼路徑都返回值" ---FOR

C#中" 並非所有的程式碼路徑都返回值" ---FOR

方法宣告中有返回型別定義,而方法中有一種執行方式沒有返回值.  
   
  例如下面的方法,當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;
}