簡體   English   中英

繼續<label>在C#中像java一樣</label>

[英]continue to <label> in C# like in java

我需要C#相當於Java的繼續嗎?

我有

for (String b : bar) {
    <label>
    try {
    }
    catch (EndpointNotFoundException ex) {
    continue <label>
    }
  }

我怎樣才能在C#中模擬這個。 我需要的是,當我得到異常,我重復代碼不繼續。

如果您只需要繼續下一個循環迭代,請使用continue

c#也有標簽(你可以跳轉到goto ),但請不要使用它們。

使用goto <label>;

為什么不簡單地添加一個控制變量?

foreach (String b in bar) {
  bool retry;
  do {
    retry = false;
    try {
      // ...
    }
    catch (EndpointNotFoundException ex) {
      retry = true;
    }
  } while (retry);
}

要么

var strings = bar.GetEnumerator<string>();
var retry = false;
while (retry || strings.Next()) {
  var b = strings.Current;
  retry = false;
  try {
    // ...
  }
  catch (EndpointNotFoundException ex) {
    retry = true;
  }
}

我不認為你想要做的事情是明智的 - 你有沒有理由期望你不會遇到一個你在特定迭代中總是得到異常的情況?

無論如何,要在沒有goto情況下做你想做的事,看看這個:

foreach (String b in bar) { 
    while(!DidSomethingWithThisString(b))
        ;
  } 

bool DidSomethingWithThisString(string b)
{
    try { 
    } 
    catch (EndpointNotFoundException ex) { 
        return false;
    } 
    return true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM