【问题标题】:How do I solve this error of 'not all code paths return a value'?如何解决“并非所有代码路径都返回值”的错误?
【发布时间】:2021-06-08 07:59:21
【问题描述】:

函数的名称是产生错误的地方。它指出“并非所有代码路径都返回一个值”。为什么会出现此错误以及如何更正?

public List<List<String>> getAvailablePMs()
{
    public List<List<String>> allAvailablePMs = new List<List<String>>;
    for (int s = 0; s < MyStaticValues.PMmanagerArray.Count; s++)
    { //for each PM in PMmanagerArray (excluding faulty or in-use)
        if (MyStaticValues.PMmanagerArray[s][1] == "" 
            && MyStaticValues.PMmanagerArray[s][2].Equals(0) 
            && MyStaticValues.PMmanagerArray[s][3].Equals(0))
        {//if the PM assigned bay is NULL AND PM status is not in use AND not faulty
            allAvailablePMs.push(MyStaticValues.PMmanagerArray[s][0]);
        }
        
    }
    return allAvailablePMs;
}

【问题讨论】:

  • allAvailablePMs.push 这不是我们在 C# 中向列表添加元素的方式,没有push 方法,有一个Add。此外,如果MyStaticValues.PMmanagerArray[s][0]string,则不能添加到allAvailablePMs,因为它需要List&lt;string&gt;
  • 在方法中声明变量时不应使用“public”。
  • 智能感知不如人类聪明。如果您有多个错误,则在查找根本案例方面可能不如人类那么好。只需检查所有错误,看看是否可以修复。
  • 令人难以置信的是,一个错位的public 可以使编译器感到困惑,而编译器甚至没有直接公开complain
  • 感谢所有评论的人,你们帮我解决了这个问题。

标签: c# list function return


【解决方案1】:

你不能在方法中使用public,这会产生一个编译错误,让编译器感到困惑,让它抱怨“不是所有的代码路径都返回一个值”。

另外,您的代码还有其他错误,List 中没有push 方法,您应该使用Add。此外,如果MyStaticValues.PMmanagerArray[s][0]string,则不能将其添加到allAvailablePMs,因为它需要List&lt;string&gt;

在风格注释上,C# 中的所有方法和属性都是 PascalCase,而不是 camelCase,因此您的方法名称应该是 GetAvailablePMs

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 2013-07-01
    • 2014-04-16
    • 2015-02-07
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    相关资源
    最近更新 更多