【问题标题】:Can a method do a return on the calling method? c#方法可以对调用方法进行返回吗? C#
【发布时间】:2011-11-09 15:38:28
【问题描述】:

方法可以对调用方法进行返回吗?

void Main()
{
   Returner(); //how can i return here... 
   DoNotCallDueToReturn();
}

void Returner()
{
   return //... from here?
}

DoNotCallDueToReturn()
{
   Console.WriteLine("You failed to return");
}

【问题讨论】:

  • 抛出异常——哦,等等,别介意。
  • 你的两种方法都是void (所以他们不返回任何东西),所以我不确定我是否理解这个问题。在这种情况下,return 是什么意思?
  • 你所说的“做回报”是什么意思这两种方法都返回,因为你“跑完了它们”
  • 只是出于好奇,您为什么要这样做?
  • 你的意思是return; 是用void 返回类型的快捷方式吗?

标签: c# return


【解决方案1】:

您的第二种方法必须返回一个值:

int Main()
{
    return Returner();
}

int Returner()
{
    return something;
}

【讨论】:

    【解决方案2】:

    你可以用这个:

    void Main()
    {
       if (!Returner()) 
       {
          return;
       }
    }
    
    bool Returner()
    {
       return false;
    }
    

    【讨论】:

      【解决方案3】:

      不,您需要返回一个状态,例如 bool 中的真/假,并在调用者中决定是否要返回。

      void Main()
      {
         if(!Validate())
         {
             return;
         }
      }
      
      // returns false if vaildation fails
      bool Validate()
      {
         return false; // or true
      }
      

      【讨论】:

        【解决方案4】:

        方法可以对调用方法进行返回吗?

        没有。

        我怎么才能回到这里...

        void Main()
        {
           Returner(); 
           return;
           DoNotCallDueToReturn(); 
        }
        

        【讨论】:

          猜你喜欢
          • 2011-09-27
          • 1970-01-01
          • 2017-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多