在方法中停止执行的最佳方法

Neatest way to stop execution in a method

相关

假设我有一个很长的方法,我想在某些情况下中止。最好的方法是什么?下面是我能想到的两种方法。

try
{
    // if i is 0, we don't want to continue
    int i = testi();
    if(i == 0)
        throw new StopException("stop")

    // the rest of our code
}
catch(StopException stop)
{
    // handle our stop exception
}
catch{
    // everything else
}

这是另一个

bool go = true
while(go)
{
    // if i is 0, we don't want to continue
    int i = testi();
    if(i == 0)
    {
        go = false;
        break;
    }
    // the rest of our code
}

这两个看起来都很笨重。抛出异常似乎有点矫枉过正,而且我实际上不想循环任何东西,所以 while 被滥用了。在我看来,在 C# 中应该有(并且可能是)一种更优雅的方式来做到这一点?

RETURN!

多伊。我实际上已经用过很多次了,出于某种原因,它今天突然从我的脑海中冒出来。谢谢你纵容我的愚蠢

中断 C# 方法的标准方法是简单地使用 return 语句。

如果方法只是无效 return,如果不是,则 return nullreturn 0 视情况而定。

绝对不需要抛出异常而不是 return。

只需使用 return 语句退出该方法。

void longMethod()
{
    int i = testi();
    if(i == 0)
        return;

    // Continue with method
}