gpt4 book ai didi

c# - 如何退出 "braced scope"?

转载 作者:太空宇宙 更新时间:2023-11-03 22:29:48 25 4
gpt4 key购买 nike

是否可以在 C# 中退出作用域,例如可以 break 退出循环?

private void a()
{
// do stuff here

{
// do more stuff here

break;? //<-- jump out of this scope here!! break won't work

// this further code should not be executed
}

// do stuff here
}

最佳答案

您可以使用 break 来跳出循环或切换,但您不能跳出像这样的简单 block 。

有很多方法可以实现这一点,例如使用 goto 或人工 while 循环,但这听起来确实像是一种代码味道。

您可以使用简单条件实现您想要的,这将使您的意图更加明确。

代替:

DoSomething();
if (a == 1) // conditional break
{
break;
}
DoSomethingElse();
break; // unconditional break (why though)
UnreachableCode(); // will generate compiler warning, by the way

你可以这样做:

DoSomething();
if (a != 1) // simple condition
{
DoSomethingElse();
if (false) // why though
{
UnreachableCode(); // will generate compiler warning, by the way
}
}

或者,您可以将这部分提取到单独的命名方法中,并使用 return 语句进行短路。有时,它确实使代码更具可读性,尤其是当您有返回值时:

private void a()
{
// do stuff here

MeaningfulNameToDescribeWhatYouDo();

// do stuff here
}

private void MeaningfulNameToDescribeWhatYouDo()
{
// do more stuff here

if (condition)
{
return; //<-- jump out of this scope here!!
}

// this further code should not be executed
}

关于c# - 如何退出 "braced scope"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58524875/

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