并非所有路径都返回一个值:C#
原谅我,如果这是基本的,我有以下功能并非所有路径都返回一个值:C#,c#,C#,原谅我,如果这是基本的,我有以下功能 private ReportOption GetReportOptions(int id, DataRow dr) { string reportType = GetValue(dr, "Report Type"); if (reportType == "Single") { GetSingleReportOptions(id, dr); } else {
private ReportOption GetReportOptions(int id, DataRow dr)
{
string reportType = GetValue(dr, "Report Type");
if (reportType == "Single")
{
GetSingleReportOptions(id, dr);
}
else
{
GetMultipleReportOptions(id, dr);
}
}
现在,我的函数GetSingleReportOptions
和GetMultipleReportOptions
都返回类型为ReportOption
的值
但它还是给了我一个错误
并非所有代码路径都返回值
你能告诉我为什么吗?我应该如何构造此函数或在两个helper函数中进行更改?方法
GetReportOptions
不会返回GetSingleReportOptions
或GetMultipleReportOptions
的结果。它只调用这些方法并忽略它们的返回值。用return
作为两个方法调用的开头,以便此方法将返回这些方法的结果。您的方法没有return语句,但返回类型不同于void。
在方法的末尾添加一个return语句您已接近所拥有的内容。只要您的方法GetSingleReportOptions
和GetMultipleReportOptions
返回一个ReportOption
,您所需要做的就是在方法调用之前添加return,您就应该很好了
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);
}
}
你不能在任何地方使用return
这个词。使用return
应该可以从技术上解决问题,没有路径返回值……你的答案无助于解释在方法结束时需要返回什么。