如果我不需要命中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,
}
Run Code Online (Sandbox Code Playgroud)
cdh*_*wie 10
每种方法使用多个return语句根本不是很差的编码风格.将自己限制为一个return语句在C中是有意义的,您可能需要goto一些常用的清理代码来释放指针等,然后返回存储在变量中的值.但在C#中,这不是必需的.
我一直用多个return语句编写方法.我更愿意阅读一个用多个return语句编写的方法,其中逻辑流是明确的,而不是读取一个用一个return语句编写的方法和一些模糊的逻辑.
| 归档时间: |
|
| 查看次数: |
1712 次 |
| 最近记录: |