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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章