复杂点的理解
第一个区别: out 参数在进入方法(函数)时后清空自己,使自己变成一个干净的参数,也因为这个原因必须在方法返回之前或再使用out参数前为 out 参数赋值(只有地址没有值的参数是不能被.net接受的);而ref参数是不需要在被调用方法使用前先赋值的,甚至也可以被调用方法中不改变ref参数的值,这都不会引起编译错误。
第二个区别:ref参数在使用前必需初始化,而out不需要。
由上边两个区别可以引申一下,out参数只进不出,ref参数有进有出。在用法上概括一下就是:out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
另一种理解:
ref是按地址引用 ,但是这个对于文件来说就是无效的
因为文件本来就是按地址引用的,所以如果你的参数是文件时,这一个不用考虑,像int 之类的就要考虑一下
out是取出的意思,在泛型中用的较多,意思是给定一个key,把KEY的VALUE赋给out的参数
ref和out都是按引用传递
这是我以前看杨老师视频之后,又百度了ref和out总结出来的,希望可以帮助到你! |