C#中out与ref关键字的区别
参数修饰符 out ref
out 表示输出参数 功能:离开当前方法之前必须对out的参数a赋值
//拿到一个结果 与return有相同的功能
//返回多个结果
ref 表示引用参数 功能: 进方法前前要赋值
//改变 注重数据的交换
两者区别:out 获取结果
ref 对变量进行操作 ,注重数据的交换
相同点:两者都是按地址传递的,使用后都将改变原来参数的数值。
不同点:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别,ref是有进有出,out是只出不进
其实最简单的理解就是:当你的一个方法需要多个返回值时就用到了out或者ref关键字。
请看下面代码:
out修饰的变量在方法结束之前必须赋值,ref可以不用赋值。