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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭正续 中级黑马   /  2012-7-29 16:50  /  2177 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   在通过参数返回值的视频学习中,老师说ref可以传入值也可以传出值,而out只能传出值,比如
class Program
    {
        static void Main(string[] args)
        {
            int number = 10;
            Test(ref number);
            Console.WriteLine(number);
            Console.ReadKey();
        }

        static void Test(ref int a)
        {
            int b = a;
            a = 50;
        }
    }
   而且在number和a的前面加上ref还可以让这两个变量共用一个内存空间,那么能不能以后遇见需要返回值的时候,我就用ref而不用out,这样行不行?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
1,ref 先初始化,若你需要在方法里改变的参数就用ref;
2,out 在方法里初始化,若你不需要传递数据需要获得多个返回结果用out吧!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
ref的意思就是引用,类似于引用类型。也就是创建了一个新的变量(参数符号)指向这个值。每次对这个值进行修改,修改的都是指向的这个值。 out的意思就是输出。也就是从方法内部获取值然后传递到外部。比如说,一个方法,返回值为bool,你只能返回true和false。但是你又想返回其他数据。这个时候out的价值就体现了。int.TryParser最能体现这个。你可以去试一下。

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马