How to cancel the execution of a method?

后端 未结 5 750
眼角桃花
眼角桃花 2020-12-30 08:18

Consider i execute a method \'Method1\' in C#. Once the execution goes into the method i check few condition and if any of them is false, then the execution of Method1 shou

相关标签:
5条回答
  • 2020-12-30 08:47

    You could setup a guard clause with a return statement:

    public void Method1(){
    
     bool isOK = false;
    
     if(!isOK) return; // <- guard clause
    
     // code here will not execute...
    
    
    }
    
    0 讨论(0)
  • 2020-12-30 08:52

    Use the return statement.

    if(!condition1) return;
    if(!condition2) return;
    
    // body...
    
    0 讨论(0)
  • 2020-12-30 08:58

    Are you talking about multi threading?

    or something like

    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;
    }
    
    0 讨论(0)
  • 2020-12-30 09:00

    There are a few ways to do that. You can use return or throw depending if you consider it an error or not.

    0 讨论(0)
  • 2020-12-30 09:02

    I think this is what you are looking for.

    if( myCondition || !myOtherCondition )
        return;
    

    Hope it answered your question.

    Edit:

    If you want to exit the method due to an error you can throw an exception like this:

    throw new Exception( "My error message" ); 
    

    If you want to return with a value, you should return like before with the value you want:

    return 0;
    

    If it is the Exception you need you can catch it with a try catch in the method calling your method, for instance:

    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 inherits from the Exception class.

    0 讨论(0)
提交回复
热议问题