A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qly2046 中级黑马   /  2013-12-17 16:19  /  1631 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qly2046 于 2013-12-20 15:31 编辑






评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

10 个回复

倒序浏览
看不清楚啊   抢个沙发
回复 使用道具 举报
把代码贴出来
回复 使用道具 举报
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();
回复 使用道具 举报

另一种情况的代码是:
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();
回复 使用道具 举报
附件是代码图,更容易理解

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

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

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

number为什么等于20?.jpg
回复 使用道具 举报
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.

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报 1 0
V_John 中级黑马 2013-12-19 17:58:37
8#
如果问题得到解决,请修改为已解决,这样版主才能加分哦
回复 使用道具 举报
qly2046 中级黑马 2013-12-19 18:30:28
9#
V_John 发表于 2013-12-19 17:58
如果问题得到解决,请修改为已解决,这样版主才能加分哦

哥们,已解决在哪里呀?我找不到!
回复 使用道具 举报
第一个 number作为参数穿进去,虽然在方法内部改变了值,但是这个值是用return 返还给了result,Main()函数中的number只是最为参数传入方法,并是不带入计算,但是用out修饰的参数,是因为out修饰符本身所带的变量要参与计算并返还

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
本帖最后由 如远行客 于 2013-12-19 22:22 编辑
qly2046 发表于 2013-12-19 18:30
哥们,已解决在哪里呀?我找不到!

帖子下面有个编辑,点击,然后修改帖子类型还不懂的就看这个帖子,上面告诉你了怎么弄
http://bbs.itheima.com/thread-85079-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马