黑马程序员技术交流社区

标题: 关于ref和out的问题 [打印本页]

作者: 韩俊    时间: 2012-12-1 15:23
标题: 关于ref和out的问题
C#中ref 和out的区别是什么,用程序来说明?
作者: 杨占伟    时间: 2012-12-1 17:57
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传入的参数要先赋值才能使用.
            
        }
    }






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