ref和out都是通过传递地址来进行参数传递,但区别在于ref需要事先赋值,out可以在方法内赋值。
也就是说ref本质上是把对应参数的地址传入,即把外部的地址传入方法,而out本质上是在方法内分配了地址,然后把地址分配给外部变量。因此产生了区别。
这也就是为什么别人说ref有进有出,out只出不进。就是说明ref是把外部变量的地址传入方法,然后通过地址去修改变量的值,而out是重新弄一个地址,然后给这个地址进行初始化,然后把这个地址给外部变量。
2022-09-15 12:42:41
ref和out都是通过传递地址来进行参数传递,但区别在于ref需要事先赋值,out可以在方法内赋值。
也就是说ref本质上是把对应参数的地址传入,即把外部的地址传入方法,而out本质上是在方法内分配了地址,然后把地址分配给外部变量。因此产生了区别。
这也就是为什么别人说ref有进有出,out只出不进。就是说明ref是把外部变量的地址传入方法,然后通过地址去修改变量的值,而out是重新弄一个地址,然后给这个地址进行初始化,然后把这个地址给外部变量。