黑马程序员技术交流社区

标题: 关于参数和返回值的问题? [打印本页]

作者: qly2046    时间: 2013-12-17 16:19
标题: 关于参数和返回值的问题?
本帖最后由 qly2046 于 2013-12-20 15:31 编辑







作者: taxue0504    时间: 2013-12-17 17:10
看不清楚啊   抢个沙发
作者: 好运不会眷顾傻    时间: 2013-12-17 19:15
把代码贴出来
作者: qly2046    时间: 2013-12-19 10:57
static int Test(out int a)
        {
            a = 20;
            return a;

        }
        static void Main(string[] args)
        {
            //可以返回多个值

            int number;
            int result = Test(out number);
            Console.WriteLine("number={0},result={1}",number,result);
            Console.ReadKey();

作者: qly2046    时间: 2013-12-19 11:00

另一种情况的代码是:
static int Test(out int a)
        {
            a = 20;
            return a;

        }
        static void Main(string[] args)
        {
            //可以返回多个值

            int number=10;
            int result = Test( number);
            Console.WriteLine("number={0},result={1}",number,result);
            Console.ReadKey();

作者: qly2046    时间: 2013-12-19 11:02
附件是代码图,更容易理解

为什么number的值等于10?.jpg (93.34 KB, 下载次数: 6)

为什么number的值等于10?.jpg

number为什么等于20?.jpg (86.87 KB, 下载次数: 11)

number为什么等于20?.jpg

作者: 如远行客    时间: 2013-12-19 12:10
qly2046 发表于 2013-12-19 11:00
另一种情况的代码是:
static int Test(out int a)
        {

你这个格式写的就有问题,Test方法的参数是out的,表示只用来传出的,在调用时也应该在参数number前面加上out关键字。如果改正过来了,那么在Test方法里面将会把20 赋值给number并传出(在main方法里面的number初始值被覆盖),后面return也是返回number的值20 ,因此输出的两个值number和result都是20.
作者: V_John    时间: 2013-12-19 17:58
如果问题得到解决,请修改为已解决,这样版主才能加分哦
作者: qly2046    时间: 2013-12-19 18:30
V_John 发表于 2013-12-19 17:58
如果问题得到解决,请修改为已解决,这样版主才能加分哦

哥们,已解决在哪里呀?我找不到!
作者: 上帝的尊严    时间: 2013-12-19 21:27
第一个 number作为参数穿进去,虽然在方法内部改变了值,但是这个值是用return 返还给了result,Main()函数中的number只是最为参数传入方法,并是不带入计算,但是用out修饰的参数,是因为out修饰符本身所带的变量要参与计算并返还
作者: 如远行客    时间: 2013-12-19 22:20
本帖最后由 如远行客 于 2013-12-19 22:22 编辑
qly2046 发表于 2013-12-19 18:30
哥们,已解决在哪里呀?我找不到!

帖子下面有个编辑,点击,然后修改帖子类型还不懂的就看这个帖子,上面告诉你了怎么弄
http://bbs.itheima.com/thread-85079-1-1.html





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2