一个函数可不可以返回两个值?下面的这道题目究竟该选什么呢?
有两个函数:   
 int   fun1(int   a,int   b) 
 { 
          b=++a; 
          return   a+b; 
 }   
 int   fun2(int   a,out   int   b) 
 { 
          b=++a; 
          return   a+b; 
 }   
 则下面说法中,正确的是   
 A.   函数fun1可以返回两个值,函数fun2只能返回一个值 
 B.   函数fun1只能返回一个值,函数fun2可以返回两个值 
 C.   函数fun1和fun2都可以返回两个值 
 D.   函数fun1和fun2只能返回两个值
------解决方案--------------------这个主要考了 按值传递,按地址传递 
 按地址传递,传递后,那个函数会修改传入参数 
------解决方案--------------------int fun2(int a,out int b) 
 { 
    b=++a; 
    return a+b; 
 } 
 返回值一个是return a+b的值; 
 一个是out 出的b的值.   
 测试: 
 int a = 0; 
 int b = 0; 
 int ret fun2(a, out b); 
 System.Console.WriteLine( "a:{0} b:{1} ", a, b);
------解决方案--------------------选B..   
 一个函数当然可以返回两个值,通过ref or out就可以达到目的,以上你的第二个方法就是用到了out..
------解决方案--------------------同意b是输出值,但觉得输出值不应该叫返回值
------解决方案--------------------同意老鼠的观点,那怎么能叫返回值呢?!   
 忽悠人
------解决方案--------------------对于能不能叫返回两个值,每个人都有自己的理解,或者说在不同的场合理解也应该不一样,感觉有点 "文字游戏 "的味道了...只要大家自己心里清楚就行了..
------解决方案--------------------按值传递和按地址传递的区别。
------解决方案--------------------答案應該是D,雖然D同時還有一個輸出參數﹐但是如果把輸出參數也當返回值,概念上應該是不正確的。 
 因為它不是函數返回的﹐而是在函數過程中改變了輸入的參數值.