“并非所有代码路径都返回一个值”

时间:2013-06-05 20:45:43

标签: asp.net xml c#-4.0

namespace Electronic_Filing_of_Appeals
{
public class GenerateXML
{
  public ElectronicRecordAppellateCase CreateXml()
  {

我的谎言在这段代码的CreateXML()部分。被踢回的错误是

  

Electronic_Filing_of_Appeals.GenerateXML.CreateXml():并非所有代码路径都返回值

我尝试了不同的接近,但结果相同。

专业人士的任何线索?

3 个答案:

答案 0 :(得分:2)

如果指定输出类型,则方法必须在代码的每个路径后面提供值。当您看到此错误时,表示方法中的一个或多个方案不返回指定类型的值,而是导致方法终止。

这是一个有问题的方法的例子:

public ElectronicRecordAppellateCase CreateXml()
{
    if (something)
    {
       return new ElectronicRecordAppellateCase();
    }
    // if the something is false, the method doesn't provide any output value!!!
}

这可以像这样解决:

public ElectronicRecordAppellateCase CreateXml()
{
    if (something)
    {
       return new ElectronicRecordAppellateCase();
    }
    else return null; // "else" isn't really needed here
}

看模式?

答案 1 :(得分:2)

支持您的方法返回ElectronicRecordAppellateCase类的实例。我猜你在方法中的某些 If 条件中返回结果,或者像这样。

public ElectronicRecordAppellateCase CreateXml()
{
  ElectronicRecordAppellateCase  output=new ElectronicRecordAppellateCase();
  if(someVariableAlreadyDefined>otherVariable)
  {
    //do something useful
    return output;
  }

 // Not returning anything if the if condition is not true!!!!

}

解决方案:确保从方法返回有效的返回值。

public ElectronicRecordAppellateCase CreateXml()
{
  ElectronicRecordAppellateCase  output=new ElectronicRecordAppellateCase();
  if(someVariableAlreadyDefined>otherVariable)
  {
    return output;
  } 
  return null;   //you can return the object here as needed
}

答案 2 :(得分:1)

并非所有代码路径都返回值意味着,您的函数可能不会返回预期值

你没有显示你的代码所以我做了一个例子

例如,follow函数有3个路径,如果parm等于1,如果parm等于2但是如果parm不等于1或2则不返回值

function SomeObject foo(integer parm){

    if (parm == 1) {
        return new SomeObject();
    }
    if (parm == 2) {
        return new SomeObject();
    }
    //What if parm equal something else???
}