我最近被告知,从循环内部返回false是一种不好的做法,尽管实际上可能不会多次调用它。有一个辅助标志来实际打破这些功能更好吗?
foo()
{
if(bar)
//somecode
else
//some other code
}
private static bool bar(int x)
{
for(int i=0;i<10;i++)
{
if(i<x)
{
return false;
break;
}
//some operation
}
这个break语句是否必要,考虑到布尔函数已经从那时返回
答案 0 :(得分:0)
Break语句不必要
这是
的原因 foo() 的IL代码
bool flag = this.bar();
if (flag)
{
// some commented code
}
并在 IL代码中 bar()
注意没有
行后中断;
返回结果;
private bool bar()
{
bool result;
int num;
for (int i = 0; i < 10; i = num + 1)
{
bool flag = i < 1;
if (flag)
{
result = false;
return result;
}
num = i;
}
result = true;
return result;
}
编译为IL代码时,C#编译器实际上删除了中断;
答案 1 :(得分:-1)
通常
return
是退出方法并返回结果的指示符。
break
。
我认为这不是最佳方法,但你可以做到这一点,至少编译器会知道该怎么做但是建议你警告。
您应该看到break
警告