Winforms:正确的方法来避免执行代码或强制退出方法

时间:2015-02-17 09:56:23

标签: c# winforms exit

我经常与Winforms合作,但我从未真正找到过"全球接受的"退出方法的方法。

所以,我知道它的一种方法是确保它能够在if(错误)中检查/停止每一段代码。

bool error = false;
if (!error)
{
    //do stuff
}

if(!error)
{
    //do stuff
}

error = true;

if (!error)
{
    //do stuff
}

然后还有其他两种方式,但我不确切知道它们是否会导致意外行为。

application.exit()一:

bool error = false;
        if (error)
        {
            Application.exit();
        }

        //do stuff
        //code code code

        if (error)
        {
            Application.exit();
        }

        //do stuff
        //code code code
        error = true;

        if (error)
        {
            Application.exit();
        }

        //THIS CODE SHOULD NOT EXECUTE???? But i think it actually does...
//From what I understood it keep executing all the code in the method and     then exits (message pumps and so on)
        //do stuff
        //code code code

然后是Environment.exit(int)方法

 bool error = false;
        if (error)
        {
            Environment.exit();
        }

        //do stuff
        //code code code

        if (error)
        {
            Environment.exit();
        }

        //do stuff
        //code code code
        error = true;

        if (error)
        {
            Environment.exit(1);
        }

        //THIS CODE SHOULD NOT EXECUTE BECAUSE Environment.exit(int) actually             breaks the application with an exception
        //Works but bad practice
        //do stuff
        //code code code

通知书?最佳实践?修正?

欢迎任何事情

1 个答案:

答案 0 :(得分:0)

  

return语句终止它出现的方法的执行,并将控制权返回给调用方法。

从您的初始帖子和评论中的描述中,您正在寻找什么?所以基本上使用类似下面的东西并以不同的方式处理返回值(返回0通常表示一切都是正确的,而-1和可能的其他整数表示不同的错误类型。当然,如果你只需要检查方法,你可以使用布尔值是否正确执行,甚至定义自己的例外情况。)

public int TestMethod(){
    //do stuff
    if (badStuffHappened)
    {
        return -1;
    }

    // Do more stuff which is not executed, 
    // if badStuffHappened before you reach the previous if statement.
    return 0;
}