在方法中停止执行的最佳方法
Neatest way to stop execution in a method
与相关
假设我有一个很长的方法,我想在某些情况下中止。最好的方法是什么?下面是我能想到的两种方法。
try
{
// if i is 0, we don't want to continue
int i = testi();
if(i == 0)
throw new StopException("stop")
// the rest of our code
}
catch(StopException stop)
{
// handle our stop exception
}
catch{
// everything else
}
这是另一个
bool go = true
while(go)
{
// if i is 0, we don't want to continue
int i = testi();
if(i == 0)
{
go = false;
break;
}
// the rest of our code
}
这两个看起来都很笨重。抛出异常似乎有点矫枉过正,而且我实际上不想循环任何东西,所以 while
被滥用了。在我看来,在 C# 中应该有(并且可能是)一种更优雅的方式来做到这一点?
RETURN!
多伊。我实际上已经用过很多次了,出于某种原因,它今天突然从我的脑海中冒出来。谢谢你纵容我的愚蠢
中断 C# 方法的标准方法是简单地使用 return
语句。
如果方法只是无效 return
,如果不是,则 return null
或 return 0
视情况而定。
绝对不需要抛出异常而不是 return。
只需使用 return
语句退出该方法。
void longMethod()
{
int i = testi();
if(i == 0)
return;
// Continue with method
}
与
假设我有一个很长的方法,我想在某些情况下中止。最好的方法是什么?下面是我能想到的两种方法。
try
{
// if i is 0, we don't want to continue
int i = testi();
if(i == 0)
throw new StopException("stop")
// the rest of our code
}
catch(StopException stop)
{
// handle our stop exception
}
catch{
// everything else
}
这是另一个
bool go = true
while(go)
{
// if i is 0, we don't want to continue
int i = testi();
if(i == 0)
{
go = false;
break;
}
// the rest of our code
}
这两个看起来都很笨重。抛出异常似乎有点矫枉过正,而且我实际上不想循环任何东西,所以 while
被滥用了。在我看来,在 C# 中应该有(并且可能是)一种更优雅的方式来做到这一点?
RETURN!
多伊。我实际上已经用过很多次了,出于某种原因,它今天突然从我的脑海中冒出来。谢谢你纵容我的愚蠢
中断 C# 方法的标准方法是简单地使用 return
语句。
如果方法只是无效 return
,如果不是,则 return null
或 return 0
视情况而定。
绝对不需要抛出异常而不是 return。
只需使用 return
语句退出该方法。
void longMethod()
{
int i = testi();
if(i == 0)
return;
// Continue with method
}