gpt4 book ai didi

c# - 我如何摆脱这个goto?

转载 作者:行者123 更新时间:2023-11-30 19:04:57 24 4
gpt4 key购买 nike

我刚刚开始一个职位,在工作日结束时,我通过慢慢阅读我们的代码库来等待流量结束。我遇到了这一点,即使在白板上花了相当长的时间后,我仍然想不出一种方法来提取 goto。有没有办法消除这种跳跃?

public void MyUpdate(MyType foo)
{
/*Prep code for the loops*/
foreach (Thing bar in something)
{
foreach (Collection item in bar.Stuff)
{
Data dataRX = item.First;
if (dataRX != null && dataRX.ID.Equals(globalNonsense.ID))
{
// Update Data with the latest changes
dataRX.fooBuddy = foo;
goto exitLoops;
}
}
}

exitLoops: ;
}

最佳答案

因为标签 exitLoops 位于方法的末尾,所以您可以简单地使用 return 退出方法,如下所示:

if (dataRX != null && dataRX.ID.Equals(globalNonsense.ID))
{
// Update Data with the latest changes
dataRX.fooBuddy = foo;
return;
}

另一种方法是使用这样的标志:

bool done = false;

foreach (Thing bar in something)
{
foreach (Collection item in bar.Stuff)
{
Data dataRX = item.First;
if (dataRX != null && dataRX.ID.Equals(globalNonsense.ID))
{
// Update Data with the latest changes
dataRX.fooBuddy = foo;
done = true;
break;
}
}

if(done)
break;
}

即使标签后面有一些代码,您也可以使用第二种方法。

关于c# - 我如何摆脱这个goto?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34623852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com