这个c#代码出了什么问题?

him*_*shu -5 c#

请告诉我这个c#代码有什么问题.

public bool CloseCOMPort()
    {
        try
        {
            bool isClosed = false;
            if (oSerialPortMisc != null && oSerialPortMisc.IsOpen)
            {
                oSerialPortMisc.Close();
                isClosed=true;

            }
            else
            {
                isClosed = false;

            }
            return isClosed;
        }
        catch (Exception exp)
        {

        }
    }
Run Code Online (Sandbox Code Playgroud)

当我编译这段代码时,它会给出错误."并非所有代码路径都返回一个值".我不知道这里的错误.请帮助.. Thanxxx ...... :)

Kev*_*vin 8

该方法并不总是返回值.你的编译器应该告诉你同样的事情.

值(isClosed)仅在try { .. }块内返回.现在,想象一下如果某些内容在返回到return语句之前失败(抛出异常),代码将继续在catch { .. }其中不返回任何内容,这就是您的代码无法编译的原因.

您应该return在方法的底部放置一个语句.

定义isClosed方法的顶部并将其返回到底部,无论如何.

public bool CloseCOMPort()
{
    bool isClosed = false;

    try { .. }
    catch { .. }

    return isClosed;
}
Run Code Online (Sandbox Code Playgroud)