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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韩俊 中级黑马   /  2012-12-1 15:23  /  1307 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C#中ref 和out的区别是什么,用程序来说明?

评分

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

查看全部评分

1 个回复

倒序浏览
out和ref属于引用类型传递他们传的是内存地址不是传值.
ref 传递的参数是双向,可以传入也可以传出:
   class Program
    {
        static void Main(string[] args)
        {
            int iNumber = 100;
            int iTemp =Test(ref iNumber);
            Console.WriteLine("refa:{0}\nref传入后经retrun的值:{1}",iNumber,iTemp);            
            Console.ReadKey();
        }
        static int Test(ref int iNum)
        {            
            int temp = iNum;//方法内可接收外部传入的值.
            iNum = 50;
            return temp;
        }
    }


out传递参数是单向的只能传出值.当需要从一个方法中传出多个值时用.
   class Program
    {
        static void Main(string[] args)
        {
            int iNumber;
            Test(out iNumber);
            Console.WriteLine("out参数传出的值是:{0}",iNumber);
           
            Console.ReadKey();
        }
        static void Test(out int iNum)
        {
            //int temp = iNum;//错误!
            iNum = 50;        //out传入的参数要先赋值才能使用.
            
        }
    }

评分

参与人数 1技术分 +1 收起 理由
张文 + 1 很给力!

查看全部评分

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