感觉自己对return很生疏一样,望各位给个详细解释

解决方案 »

  1.   

    所有的方法都是要return的,void可以省略return,省略的话就默认在方法体中最后一个语句执行后return,当然return的位置时随自己定的
    如: 
    public void Test(string[] array)
    {
        foreach(string s in array)
        {
            if(s.Contains("hello")
            {
                 Console.WriteLine("Yes");//如果有包括hello的项,输出yes,并退出方法
                 return;
            }
        }
        Console.WriteLine("No");//如果没有包括hello的项,输出no,这里就可以省略return了
    }
      

  2.   

    return 返回值么!比如 一个函数  
    public void aa()
    {
      string a = dd();
       //这里 a等于dd()函数返回的值, 所以a=ABC
    }
     public  string  dd()
    {
      string  d ="ABC";
      ........ return d; ///这个函数最后回返回一个string 的值
    }
      

  3.   

    补充下! 1楼 说的是在函数内循环的情况下! 如果得到正确的值时 来跳出循环! 所以直接retrun 就可以了!
      

  4.   

    用在类型非"void"型方法中, return XX ; XX指返回值其他情况指 跳出方法
      

  5.   

    我想去理解的也就是1楼给我的例子了,关于foreach中有个if语句,if语句中用到了rerurn
    当执行了if语句,rerurn是跳出到哪,为什么会是跳出这一方法呢?
    我总理解成是跳出了foreach循环,而Console.WriteLine("No");这一句是总要执行的,这是我的理解
    请给我纠错一下,该怎么去理解
      

  6.   

    这个return到底是跳出到哪了,怎么去理解
      

  7.   

    原则只有一句话,当return用在函数调用时,记住“你给什么我要什么,你要什么我给什么”,注意函数中参数的类型,要的什么类型给的就是什么类型,返回的什么类型,就用什么类型来接收,这里的return指的是返回参数
      

  8.   

    return 就是跳出方法,不管你代码执行到哪里,只要return,那么就不再执行(除非有finally)
    要跳出循环应该用break
      

  9.   

    7楼的也就是说Console.WriteLine("No");总要执行的了?
    而我运行的结果可不是啊,是若执行了if语句,那么Console.WriteLine("No");就不执行了,否则则执行Console.WriteLine("No");
      

  10.   

    retun 返回些什么后面的代码就不执行了
      

  11.   

    break我知道怎么去理解,就是昨晚突然做了个例子,用到了return,没有任何返回参数,不知道它到底跳出到哪了
      

  12.   


    public void Test(string[] array)
    {
        foreach(string s in array)
        {
            if(s.Contains("hello")
            {
               Console.WriteLine("Yes");//如果有包括hello的项,输出yes,并退出方法
                 return;//跳到Console.WriteLine("No")行并往下执行
            }
        }
        Console.WriteLine("No");//如果没有包括hello的项,输出no,这里就可以省略return了
    }
      

  13.   


    public void funcA()
    {
        int k = funcB();
        k=k+1;
    }public int funcB()
    {
      //...
    }上面的代码中,在funcB()内的任何地方返回都会导致代码执行到k=k+1;这一行上来。
    正哪上面的老大说的,如果在你的return被某个try{...}finally{}所包括,那么相应还会执行finally内的代码。在返回之前,还有可能执行一些由编译器所填充的代码,这个一般不用处理。比如:lock,using等。
      

  14.   

    那还是一楼的例子,但我这样写
    public void Test(string[] array)
    {   string a="aa";
        foreach(string s in array)
        {
            if(s.Contains("hello")
            {
                 Console.WriteLine("Yes");
                 return a="bb"
            }
        }
        Console.WriteLine(a);
    }这样的话它执行了if语句还会执行它吗Console.WriteLine(a);
      

  15.   

    对还要将那个void改成string,那它还执行Console.WriteLine(a)吗
      

  16.   

    public void Test(string[] array) 
    {  string a="aa"; 
        foreach(string s in array) 
        { 
            if(s.Contains("hello") 
            { 
                Console.WriteLine("Yes"); 
                return a="bb" 
            } 
        } 
        Console.WriteLine(a); 
    } public 这个后面 如果写成void 的话那就代表没有返回值!    如果写成类型!就代表 返回值的类型! 你这样写是没有意义的!没有人会去这样写的!      输出的时候 a  是 "bb"
      

  17.   

    不是说了吗,只要return了就退出方法了,return之后的代码将不会再执行了(除非有finally)
    还看不懂吗????
      

  18.   

    return 进程无条件返回.退出堆栈而已.
      

  19.   

    相信他没错。退出整个方法,有finally情况另外。
    你不是也试验了吗?