C#中的两个关键字ref和out

来源:互联网 发布:手机软件源码 编辑:程序博客网 时间:2024/05/17 20:32

今天简要的说下C#中的两个关键字,ref和out关键字,其实在之前学习java的时候,还真是没接触过这两个东西,刚开始看到,还觉得,C#怎么就那么多关键字,不过了解后,还是蛮简单的,就是引用的方式来传递参数。

1、ref关键字

当值类型和string类型参数要按引用方式传参时,可以通过ref关键字来声明引用参数,无论是形参还是实参,只要希望传递数据的引用,就必须添加ref关键字,下面举例说说这个关键字的用法:

    class Program    {        static void Main(string[] args)        {            int a = 1, b = 2;          //  int a, b;            exchange(ref a, ref b);            Console.WriteLine("{0},{1}", a, b);        }        static void exchange(ref int a, ref int b)        {            int temp = a;            a = b;            b = temp;        }    }

输出结果:2,1

说明:进行该引用的方式传递时,a和b的值必须初始化,你可以试试不要初始化a、b的值,编译器会报错。

2、out关键字

out关键字主要用来输出参数,方法中的return语句只能返回一个运算结果,虽然也可以使用引用型的参数返回计算结果,如上所示,但是ref修饰的参数在传参前要求先初始化实参。但是有时参数在传参前无法确定其值,其值只在方法调用后才返回,在传参前确定其值是没有意义的,则C#提供了out关键字。下面举例:

    class Program    {        static void Main(string[] args)        {            int a = 10, b = 5;            int sum, product;            calc(a, b, out sum, out product);            Console.WriteLine("和为:{0}, 积为:{1}", sum, product);        }        static void calc(int a, int b, out int sum, out int product)        {            sum = a + b;            product = a * b;        }    }
输出结果是:和为:15, 积为:50

说明:可以看出,通过这种方式就可以完成多个值的返回了。

总结:本次的案例比较简单,两个关键字理解起来也不难,ref在传参前必须初始化,而out在方法调用里面必须赋值,不然编译器都会报错。对于上面有什么错误的,欢迎各位大牛指出,联系方式:229047554@qq.com




原创粉丝点击