标签:
一、ref关键字
a、ref关键字是用来修饰方法的参数的
b、在调用的时候。在为被ref修饰的形参传值的时候,实参前面也必须要用ref修饰。
c、 传值的时候,传递的不是实参变量的值,传递的是实参变量的地址。
这个时候在方法的内部,修改ref形参的值,其实改的是实参变量的值。
d、所以实参必须是1个变量,不能是1个常量。因为传递的时候传的是变量的地址,而不是值。
最大的作用是:可以在方法的内部去修改调用者的变量的值。实际上,我们发现ref传递以后,实参ref和形参ref 就是同1个变量. 这个时候 在方法的内部,修改ref形参的值 就是修改实参变量的值 因为本质上他们是同1个变量.
二、out关键字
a、是用来修饰方法的参数的。调用的是,实参的时候,实参必须是1个变量,并且实参也是被out修饰。
b、如果加了out关键字,那么在传递的时候,传递的不是实参变量的值,而是实参变量的地址。所以在方法的内部,修改out形参,实际上修改的是调用者的实参变量的值。
实际上,我们发现out传递以后,实参out和形参out就是同一个变量。
这个时候 在方法的内部,修改out形参的值,就是修改实参变量的值,因为本质上他们是同个变量。
out最大的作用是:可以在方法的内部更改调用者的变量的值。当我们需要向调用者返回多个数据的时候,就可以用它。
三、ref与out的区别
a、ref在方法的内部可以为其赋值,也可以不赋值。out要求在方法结束之前必须为它赋值。
b、ref实参变量在传递之前,要求必须有初始值,因为在方法的内部有可能会使用它的值。
out实参变量在传递之前,可以没有初始值,因为在方法的内部一定会为它赋值的。
out在方法中,使用之前,必须为其赋值。
ref侧重于修改,out侧重于输出。
四、如果方法的内部有可能返回多个数据,那么我们就可以使用ref。
如果方法一定会返回多个数据,那么我们就可以使用out。
但是ref是可以用在任意的场合的。
ref & out关键字
标签:
原文地址:http://www.cnblogs.com/huanhuan0624/p/4716550.html