这段c#语句为什么出错?

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:45:56
public string IsUCS2PDU(string PDU)
{

if ((PDU.Substring(0, 4) == "0891") && (PDU.Substring(40, 2) == "08")) return "UCS2";

if ((PDU.Substring(0, 4) == "0891") && (PDU.Substring(40, 2) == "00")) return "7Bit";

if (PDU.Substring(0, 4) != "0891") return "NOTPUD";

}

错误:“IsUCS2PDU(string)”: 并非所有的代码路径都返回值

为什么出错????

public string IsUCS2PDU(string PDU)
{

if ((PDU.Substring(0, 4) == "0891") && (PDU.Substring(40, 2) == "08")) return "UCS2";

if ((PDU.Substring(0, 4) == "0891") && (PDU.Substring(40, 2) == "00")) return "7Bit";

if (PDU.Substring(0, 4) != "0891") return "NOTPUD";

return"";//加这一行。。如果三个if条件都不满足,从这里返回值。

}

编译器不认为 你的IF ELSE 语句不绝对执行
所以在某些情况下 是没有return的
比如说PDU==“abcd”的时候

只有if进行了return,那else部分呢

是否让编译器认为第三句被你忽略了呢?貌似没有ELSE也是可以的````

试问:0819(36个0)02 返回什么呢?

当所有if条件都不成立时,将没有返回语句。