namespace Electronic_Filing_of_Appeals
{
public class GenerateXML
{
public ElectronicRecordAppellateCase CreateXml()
{
我的谎言在这段代码的CreateXML()部分。被踢回的错误是
Electronic_Filing_of_Appeals.GenerateXML.CreateXml():并非所有代码路径都返回值
我尝试了不同的接近,但结果相同。
专业人士的任何线索?
答案 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???
}