2013-06-05 86 views
0
namespace Electronic_Filing_of_Appeals 
{ 
public class GenerateXML 
{ 
    public ElectronicRecordAppellateCase CreateXml() 
    { 

我在这段代码的CreateXML()部分的谎言。被踢的错误背面是“不是所有的代码路径都返回一个值”

Electronic_Filing_of_Appeals.GenerateXML.CreateXml():不是所有的代码路径返回一个值

我已经尝试了不同的接洽,但同样的结果。

从专业人士的任何线索?

+6

显示的方法本身,而不是仅仅定义... – walther

+2

这不是婆可以从你发布的内容中知道。该错误意味着有一个代码路径不会返回任何东西(缺少'else','case'之类的东西)。 – Oded

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

回答

2

您的方法支持返回ElectronicRecordAppellateCase类的实例。我想你是在返回结果中的一些如果条件在你的方法或如此这般。

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 
} 
+0

谢谢大家的快速回复。我意识到我在代码的末尾忘了我的“回归”。你们都摇滚! –

+0

@RaymondBeyrle欢迎您。很高兴我能帮上忙 :) – Shyju

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

并非所有的代码路径返回值的装置,你的功能可能无法返回预期值

你不显示你的代码,所以我打了一个比方

例如,后续函数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??? 
} 
相关问题