if语句- c# Do-While回调

本文关键字:Do-While 回调 语句 if | 更新日期: 2023-09-27 17:51:19

我的代码卡住了!

我有一个Do -While循环,在里面我有一个Switch-Case,每个case都有If Else条件,像这样:

问题在这里一旦我按下重试按钮(在If-Else条件下),我想回到Do循环的中间,并再次运行它进行检查……我不太确定我该怎么做。

if语句- c# Do-While回调

如果switch case位于循环体的底部,您可以从一开始就调用continue和循环。

如果您需要从循环的中间开始,而不是开始,我能想到的唯一方法是将中间部分包装在另一个循环体中。现在,continue将应用于内循环,您将得到您想要的。

如果没有其他选择,可以使用goto,但要注意后果

我真的不知道你为什么要在一个巨大的循环和switch语句中构建这样的代码。对我来说,我可能会分手。这样会更容易理解。但也许你是有理由的。

如果可以,创建一个内部循环并继续执行该循环,直到返回一个非重试值。

如果这真的不起作用,那么我不高于使用goto。我知道这对很多人来说是禁忌,但我的目标是写出清晰的代码。如果您知道自己在做什么,并且goto会产生最清晰的代码,那么我建议您去做。

出于可读性和维护的考虑,您可能希望将代码分成函数。我建议你试试这个:

do
{
  if(eErrorCode!=0)
  {
     if( GetResult(eErrorCode) == "Break")
      break;
  }
}
private string GetResult(eErrorCode)
{
  switch(eErrorCode)
  ...
}