2015-04-04 106 views
0

這個問題實際上是跟在另一個線程上的答案,但是與該原始問題相關的主題是這樣,所以我在新線程中提問。Save()方法是否會返回false或者它總是返回true?

Why does CodeRush warn me of an Unused Declaration in code?

問題可以站在自己這樣的鏈接,原來的問題是隻爲好奇的參考。

我的問題是這樣嗎? Save()方法會返回一個false還是總是返回true?

public bool Save() 
    { 
     bool success = false; 

     using (DataAccess.ExecuteDataTable("[dbo].[udp_Customers_ups]", 
      DataAccess.Parameter(CustomerIdColumn, CustomerId), 
      DataAccess.Parameter(CodeColumn, Code), 
      DataAccess.Parameter(CompanyColumn, Company), 
      DataAccess.Parameter(CommentsColumn, Comments), 
      DataAccess.Parameter(ContactColumn, Contact), 
      DataAccess.Parameter(StreetColumn, Street), 
      DataAccess.Parameter(CityColumn, City), 
      DataAccess.Parameter(StateColumn, State), 
      DataAccess.Parameter(ZipcodeColumn, Zipcode), 
      DataAccess.Parameter(PhoneColumn, Phone), 
      DataAccess.Parameter(IsNewColumn, IsNew), 
      DataAccess.Parameter(IsDeletedColumn, IsDeleted), 
      DataAccess.Parameter(LastUpdatedColumn, LastUpdated), 
      DataAccess.Parameter(UpdatedByColumn, UpdatedBy))) 
     { 
      success = true; 
     }  

     return success; 
    } 

我試圖強制使用不會工作的情況,但每次我都會得到不同的錯誤。所以我認爲這個方法總是成立的,因爲任何會導致它失敗的東西都會在數據層出現,並且永遠不會返回到這裏返回false。

+0

如果你用try catch塊封裝你的整體,那麼catch將執行並且成功仍然是false - 我不確定這是你想要的嗎? – NDJ 2015-04-04 18:35:59

回答

2

此方法將總是返回true,否則將拋出一個異常,因爲

 success = true; 

聲明

 return success; 

總是先(「主導」)我懷疑using語句是不完全是你在這裏尋找的。使用確保在傳遞給using語句的對象上調用dispose方法。無論如何,循環內的代碼都會執行。有關使用說明的更多信息,請參見https://msdn.microsoft.com/en-us/library/yh598w02.aspx

0

您的代碼就相當於

public bool Save() 
    { 
     using (DataAccess.ExecuteDataTable("[dbo].[udp_Customers_ups]", 
      DataAccess.Parameter(CustomerIdColumn, CustomerId), 
      DataAccess.Parameter(CodeColumn, Code), 
      DataAccess.Parameter(CompanyColumn, Company), 
      DataAccess.Parameter(CommentsColumn, Comments), 
      DataAccess.Parameter(ContactColumn, Contact), 
      DataAccess.Parameter(StreetColumn, Street), 
      DataAccess.Parameter(CityColumn, City), 
      DataAccess.Parameter(StateColumn, State), 
      DataAccess.Parameter(ZipcodeColumn, Zipcode), 
      DataAccess.Parameter(PhoneColumn, Phone), 
      DataAccess.Parameter(IsNewColumn, IsNew), 
      DataAccess.Parameter(IsDeletedColumn, IsDeleted), 
      DataAccess.Parameter(LastUpdatedColumn, LastUpdated), 
      DataAccess.Parameter(UpdatedByColumn, UpdatedBy))) 
     { 
      return true; 
     }  
    } 

這表明falsesuccess分配未使用。

相關問題