黑马程序员技术交流社区
标题:
out 和ref
[打印本页]
作者:
苏波
时间:
2012-12-17 10:44
标题:
out 和ref
既然有了ref 为什么还要用out,不如直接用ref,out 和ref有什么区别,二者有什么作用
作者:
王晨
时间:
2012-12-17 10:51
本帖最后由 刪除記忆ご 于 2012-12-17 10:55 编辑
区别:
使用ref前必须对变量赋值,out不用。
out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。
out类型参数是按地址传递,能改变原来的数值,使用out传参前,对变量可以赋值也可以不赋值。带有out类型参数的函数,会清空变量,所以在离开该函数的时候,所有out引用的变量都要赋值。
作者:
黑马黄涛
时间:
2012-12-17 10:56
ref可以把参数的数值传递进函数,但是out是要把参数清空...
所以无法把一个数值从out传递给一个方法中...而ref就不同了,他可以把参数的数值传递进函数...
作者:
李先洋
时间:
2012-12-17 11:45
通过ref传递的参数必须在调用之前被赋值。原因是接受这种实参的方法基于形参指向一个有效值的假设因此,使用ref关键字时,不能使用方法来给实参赋初始值。
out参数类似于ref参数,但有一点例外:它只能用于将值传出方法的情形。在调用方法之前,不必给作为out参数使用的变量赋初值。该方法将给变量赋值。而且,在方法内部,out参数被认为是为赋值的,即认为它没有初始值,这意味着方法必须在终止前给参数赋值。因此在调用方法之后,out参数将包含值。
作者:
徐威
时间:
2012-12-18 13:47
ref修饰参数,说明是引用的传递,也就是说在函数中对参数的操作会改变原来的值;out修饰参数,是说这个参数可以不被初始化,但在函数中一定要有赋值的语句。
作者:
唐海军
时间:
2012-12-18 14:09
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须使用 ref 关键字。传递到 ref 参数的参数必须最先初始化。这与 out 不同,out 的参数在传递之前不需要初始化。属性不是变量,因此不能作为 ref 参数传递。
作者:
鲜学良
时间:
2012-12-18 14:28
ref参数修饰符是的变量可以创建按引用调用,而不是按值调用。在声明和调用方法时,需要使用ref修饰符。
out参数类似于ref参数,但有一点例外:它只能用于将值传出方法的情形。在调用方法之前,不必给作为out参数使用的变量赋初值。该方法将给变量赋值。而且,在方法内部,out参数被认为是为赋值的,即认为它没有初始值,这意味着方法必须在终止前给参数赋值。因此在调用方法之后,out参数将包含值。
作者:
梦ing
时间:
2012-12-19 17:12
ref仅仅是一个地址,引用传递,可以把值传递强制改为引用传递
out让函数可以输出多个值
ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而
out则是内部为外部赋值,所以不需要初始化,而且外部初始化也
没用。
ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,
out一般用在多个函数有多个返回值的场所。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2