2013-06-05 132 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??? 
} 
相關問題