2015-04-01 74 views
-2

原諒我,如果這是基礎知識,我有以下功能並非所有的路徑返回值:C#

private ReportOption GetReportOptions(int id, DataRow dr) 
{ 
    string reportType = GetValue(dr, "Report Type"); 
    if (reportType == "Single") 
    { 
     GetSingleReportOptions(id, dr);    
    } 
    else 
    { 
     GetMultipleReportOptions(id, dr); 
    } 
} 

現在我的兩個功能GetSingleReportOptionsGetMultipleReportOptions正在返回ReportOption類型的值。

不過它給了我一個錯誤

並非所有的代碼路徑返回一個值

你能告訴我爲什麼嗎?我應該如何構造這個函數或者在兩個輔助函數中進行修改?

+3

你不要在任何地方使用單詞'return'。 – paqogomez 2015-04-01 17:28:31

+2

使用'返回'它應該解決問題 – user2526236 2015-04-01 17:29:17

+0

從技術上講,NO路徑返回一個值... – 2015-04-01 17:34:34

回答

5

方法GetReportOptions沒有returnGetSingleReportOptionsGetMultipleReportOptions的結果。它只是調用這些方法並忽略它們的返回值。在return前面都有方法調用,這樣這個方法將返回這些方法的結果。

0

你的方法沒有return語句,但返回類型與void不同。 在方法末尾添加return語句

+0

您的回答無助於解釋方法結束時需要返回的內容。 – 2015-04-01 20:12:54

1

您已接近您的所擁有的東西。只要你的方法GetSingleReportOptionsGetMultipleReportOptions做退回ReportOption所有你需要做的是在方法調用之前添加返回,你應該是好的。

private ReportOption GetReportOptions(int id, DataRow dr) 
{ 
    string reportType = GetValue(dr, "Report Type"); 
    if (reportType == "Single") 
    { 
     return GetSingleReportOptions(id, dr);    
    } 
    else 
    { 
     return GetMultipleReportOptions(id, dr); 
    } 
} 
相關問題