读书人

一个函数可不可以返回两个值?下面的这

发布时间: 2012-01-26 19:40:46 作者: rapoo

一个函数可不可以返回两个值?下面的这道题目究竟该选什么呢?
有两个函数:

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同有一出但是如果把出也返回值,概念上是不正的。
因它不是函返回的而是在函程中改了入的值.

读书人网 >C#

热点推荐