A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑玉赛 中级黑马   /  2012-5-16 16:09  /  1804 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郑玉赛 于 2012-5-17 19:28 编辑

ref和out两个都能传参数,那它们的区别是什么?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

倒序浏览
方法参数传递,从方式上来说分为,值传递方式和引用传递方式。ref和out都属于引用传递,对参数的任何操作都会反映在原变量上,而值传递只是变量的一个备份。

ref与out的区别
1、ref 参数的参数必须最先初始化(在方法初始化之前)out就可以不必在初始化之前必须声明
2、不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。

如果要返回多个变量使用out是个不错的解决方案噢

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
ref是引用参数,声明方法时,不需要对参数进行赋值,只需要在调用的时候赋值就行了,而引用之后的结果会对主函数的参数产生影响。
out是输出参数,声明方法时,必须同时对参数进行赋值,在调用的时候不需要赋值,会直接得出结果,影响主函数的参数。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
ref : 传递前必须初始化,
out:不必初始化,就算初始化,也会被无视,
out 作为输出参数,可以解决函数只有一个返回值的问题

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马