欢迎来到我的地盘:今天是

若得山花插满头,莫问奴归处!



                                                                                                                                                                                                              <        <                                                            才华让人风流
posts - 1349, comments - 677, trackbacks - 23, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

C#中Ref和Out传参的区别

Posted on 2007-12-17 09:36 莫问奴归处 阅读(174) 评论(0) 编辑 收藏

一,相同点:二者都是引用类型变量。   

二,不同点:见下

 class paramtest
    {
        void testRef(ref int i)
        {
            i++;
        }

        void testOut(out int i)
        {
            i = 1; // --(3)
            i++;       
        }

        static void Main(string[] args)
        {
            int pRef = 1; //--(1)

            int pOut; //-(2)

            paramtest p = new paramtest();
            p.testRef(ref pRef );  //使用ref为标志符时,参数变量必须被声明且初始化,如(1)
            Console.WriteLine("pRef={0}",pRef);

            p.testOut(out pOut);

            //使用out 为标志符时,参数变量必须被声明而不需要初始化,如(2)

            //但是在调用的方法体中必须为该变量进行初始化,如(3)
            Console.WriteLine("pOut={0}",pOut); 

            Console .Read ();

        }
    } 

轩轩娃