繁体   English   中英

C#做时回叫

[英]c# Do-While Calling back

我卡在了我的代码中!

我有一个Do-While循环,内部有Switch-Case,每种情况都有If Else条件,例如:

这是问题所在一旦按下“重试”按钮(在If-Else条件下),我想回到Do Loop的中间并再次运行它以进行检查...我不太确定该怎么做。 任何帮助都会很棒。

如果开关盒位于循环主体的底部,则可以只调用continue然后从头开始循环。

如果您需要从循环的中间开始而不是从循环开始,那么我想到的唯一方法就是将中间包裹在另一个循环体中。 现在, continue将应用于内部循环,您将获得所需的内容。

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

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

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

如果那确实不起作用,那么我就不在上面使用goto 我知道很多人都忌讳,但我的目标是编写清晰的代码。 而且,如果您知道自己在做什么,并且goto了最清晰的代码,那么我就去做。

您可能希望将代码拆分为功能,以提高可读性和维护观点。 我建议您尝试一下:

do
{
  if(eErrorCode!=0)
  {
     if( GetResult(eErrorCode) == "Break")
      break;
  }
}

private string GetResult(eErrorCode)
{
  switch(eErrorCode)
  ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM