我的方法是这样的: -
protected string myMethod()
{
if (something)
{
string img = "A";
return img;
}
else
if(something else)
{
string img = "B";
return img;
}
}
当我运行代码时“显示并非所有代码路径都返回一个值”..为什么呢?该方法返回“string img”然后为什么会出现此错误?
答案 0 :(得分:6)
问问自己;如果'别的'是假的,会发生什么?什么回来了?
答案 1 :(得分:4)
问题是如果something
为假且somthing else
为假。
这应该更好:
protected string myMethod()
{
string img = string.Empty;
if (something)
{
img = "A"
}
else
if(something else)
{
img = "B";
}
return img;
}
答案 2 :(得分:2)
如果something
和something else
都不为真,则无法执行任何操作,也无法返回任何字符串。
如果something
只是something else
的否定,那么else
之后就不应该有任何条件。
答案 3 :(得分:2)
与其他答案相同,但更为紧凑 -
protected string myMethod()
{
return (something)? "A" : ((something else)? "B" : string.Empty);
}
答案 4 :(得分:1)
protected string myMethod()
{
if (something)
{
string img = "A";
return img;
}
else
if(something else)
{
string img = "B";
return img;
}
reture some_String_To_Return
}