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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨礼文 中级黑马   /  2012-3-8 21:11  /  2194 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨礼文 于 2012-3-9 14:25 编辑

在方法后面的括号内定义变量,叫作定义这个方法的参数.这里定义的变量用于接收调用者传过来的数据.
注意:如果一个方法一旦有参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型必须一致.



out  是传出
ref  传入且传出
return   返回一个值



求更具体更详细的说明

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

3 个回复

倒序浏览
简单点可以理解为:
ref 要求变量必须在传递之前进行初始化
而out返回前,必须对变量赋值。(out参数在进入方法的时候,C#会自动清空它的一切引用和指向,所以必需先要为该参数赋值。)

评分

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

查看全部评分

回复 使用道具 举报
复杂点的理解
第一个区别: out 参数在进入方法(函数)时后清空自己,使自己变成一个干净的参数,也因为这个原因必须在方法返回之前或再使用out参数前为 out 参数赋值(只有地址没有值的参数是不能被.net接受的);而ref参数是不需要在被调用方法使用前先赋值的,甚至也可以被调用方法中不改变ref参数的值,这都不会引起编译错误。

第二个区别:ref参数在使用前必需初始化,而out不需要。

由上边两个区别可以引申一下,out参数只进不出,ref参数有进有出。在用法上概括一下就是:out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。



另一种理解:
ref是按地址引用 ,但是这个对于文件来说就是无效的
因为文件本来就是按地址引用的,所以如果你的参数是文件时,这一个不用考虑,像int 之类的就要考虑一下

out是取出的意思,在泛型中用的较多,意思是给定一个key,把KEY的VALUE赋给out的参数



ref和out都是按引用传递

这是我以前看杨老师视频之后,又百度了ref和out总结出来的,希望可以帮助到你!
回复 使用道具 举报
原世功 发表于 2012-3-8 22:49
复杂点的理解
第一个区别: out 参数在进入方法(函数)时后清空自己,使自己变成一个干净的参数,也因为这 ...

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