C#中Ref/Out参数

发布时间:2016-12-9 23:28:19 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"C#中Ref/Out参数",主要涉及到C#中Ref/Out参数方面的内容,对于C#中Ref/Out参数感兴趣的同学可以参考一下。

 Ref全称是Reference,其实传递的是参数变量的地址,目的是操作函数内部值out 不需要赋初值,它本身是输出(返回值),目的是让函数有多个返回值ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而out则是内部为外部赋值,所以不需要初始化,而且外部初始化也没用。ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所例如:        static void Main(string[] args)        {                        int i1 = 10;            int i2 = 20;           ////用ref之前必须给变量赋值                       //Swap(ref i1, ref i2);       //传递引用。给ref传递参数的时候也要加上ref            //Console.WriteLine("i1={0},i2={1}",i1,i2);            bool b= false;      //不需要为out赋值            int i = Parse(Console.ReadLine(), out b);            if (b)            {                Console.WriteLine("成功,i={0}", i);            }            else            {                Console.WriteLine("错误");            }            Console.ReadKey();        }                     static void Swap(ref int i1, ref int i2)                   //reference→ref        {            //标记为ref就是要求调用者传递变量的引用            int temp = i1;            i1 = i2;            i2 = temp;        }                !  输出的就是交换了的值,类似于C语言中的指针!        //static void Swap(int i1, int i2)    //int i传进来的的时候是复制了一份传进来,折腾的是复制品        //{        //    int temp = i1;        //    i1 = i2;        //    i2 = temp;        //}             ! 输出的还是原值      static int Parse(string s,out bool success)        {            //Console.WriteLine(success);            if(s=="一")            {                success = true;                return 1;            }            else if(s=="二")            {                success = true;                return 2;            }            else            {                success = false;                return -1;            }}

上一篇:C#可变参数问题
下一篇:Bitmap拉伸后出现锯齿的几种解决办法

相关文章

关键词: C#中Ref/Out参数

相关评论