如果我不需要 hit block2,如何返回值。
有没有道理?我想我不应该使用 multi return
,但我不能用 break
代替它。 没有可以中断或继续的封闭循环。
public EnResult MyFun()
{
bool bRet = default;
// block1 . higher priority than block2.
if (true)
{
// if bRet = true_1, not need hit block2. That's why I want to nested my code with multi *return*
return bRet = true_1;
}
else
{
// do nothing
}
// block2
if (true)
{
return bRet = true_2;
}
else
{
// do nothing
}
return bRet;
}
public enum EnResult
{
true_1,
true_2,
false_1,
false_2,
default,
}
最佳答案
每个方法使用多个返回语句根本不是糟糕的编码风格。在 C 中限制自己使用一个 return 语句是有意义的,在 C 中您可能需要 goto
一些将释放指针等的常见清理代码,然后返回您存储在变量中的值。但在 C# 中,这不是必需的。
我一直在编写带有多个返回语句的方法。我宁愿阅读一个使用多个返回语句编写且逻辑流程清晰的方法,也不愿阅读一个使用一个返回语句编写且逻辑有些困惑的方法。
关于c# - C# 中的一般多返回语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458142/