2015-04-01 99 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); 
    } 
} 
相关问题