簡體   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