C#方法就像“休息”一样消费代码?

时间:2015-07-30 00:34:40

标签: c# break

有没有办法写一个方法,所以它就像休息一样;消费代码?我正在尝试替换一堆我这样做的地方:

if (flag == true)
{
    break;
}

我正在编写一个控制台应用程序,它使用带有开关盒的while循环来显示菜单。我有一堆重复的代码,我想提取到方法中。具体而言,用户输入的方法需要能够返回主菜单。我一直在用布尔值(标志)作为这些方法的out参数。

1 个答案:

答案 0 :(得分:0)

虽然我强烈阻止了这一点,但您可以通过抛出异常来摆脱循环:

public void AssertFlag(bool flag)
{
    if(flag)
    {
         throw new Exception(); //You can use a more specific type
    }
}

你在循环中调用此函数:

while(...)
{
     // ... Code here
     AssertFlag(flag);
     // ... Code here
}

请注意,如果您未在调用堆栈中正确处理异常,那么您的应用程序将会崩溃。