考虑我在C#中执行方法'Method1'。 一旦执行进入方法,我检查几个条件,如果它们中的任何一个是假的,那么应该停止执行Method1。我怎么能这样做,即在满足某些条件时执行方法。?
但我的代码是这样的,
int Method1()
{
switch(exp)
{
case 1:
if(condition)
//do the following. **
else
//Stop executing the method.**
break;
case2:
...
}
}
答案 0 :(得分:30)
使用return
声明。
if(!condition1) return;
if(!condition2) return;
// body...
答案 1 :(得分:13)
我认为这就是你要找的东西。
if( myCondition || !myOtherCondition )
return;
希望它能回答你的问题。
如果由于错误而想退出方法,可以抛出这样的异常:
throw new Exception( "My error message" );
如果你想用一个值返回,你应该像以前一样返回你想要的值:
return 0;
如果是你需要的Exception,你可以在调用方法的方法中使用try catch来捕获它,例如:
void method1()
{
try
{
method2( 1 );
}
catch( MyCustomException e )
{
// put error handling here
}
}
int method2( int val )
{
if( val == 1 )
throw new MyCustomException( "my exception" );
return val;
}
MyCustomException继承自Exception类。
答案 2 :(得分:3)
你在谈论多线程吗?
或类似
int method1(int inputvalue)
{
/* checking conditions */
if(inputvalue < 20)
{
//This moves the execution back to the calling function
return 0;
}
if(inputvalue > 100)
{
//This 'throws' an error, which could stop execution in the calling function.
throw new ArgumentOutOfRangeException();
}
//otherwise, continue executing in method1
/* ... do stuff ... */
return returnValue;
}
答案 3 :(得分:2)
有几种方法可以做到这一点。如果您认为是错误,可以使用return
或throw
。
答案 4 :(得分:1)
您可以使用return语句设置一个保护子句:
public void Method1(){
bool isOK = false;
if(!isOK) return; // <- guard clause
// code here will not execute...
}