【问题标题】:C# Method that acts like "break;" to consuming code?行为类似于“break;”的 C# 方法消费代码?
【发布时间】:2015-07-30 00:34:39
【问题描述】:

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

if (flag == true)
{
    break;
}

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

【问题讨论】:

  • 不清楚你在问什么

标签: c# break


【解决方案1】:

虽然我强烈不鼓励这样做,但您可以通过抛出异常来中断循环:

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

您可以从循环内部调用此函数:

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

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

【讨论】:

  • @Downvoter,请花点时间发表评论,解释反对意见以及如何改进我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多