ref/out/none的区别
1,首先ref和out的区别
可以划分为调用和被调用两个阶段
ref out
在调用阶段 需要初始化 初不初始化都行
在被调用阶段 初不初始化都行 需要初始化
2,ref和none的区别
ref实际上就是又装了一次箱
分值类型和引用类型
值类型:
none:调用阶段在栈上,传的时候把栈的值传进去
ref:调用阶段先在栈上,传的时候把值装箱,然后把栈上的地址传进去,被调用修改的时候改传入地址指向的内存的内容
引用类型:
none:调用阶段数据在内存里,地址在栈上,传的时候把栈上的地址传进去。被调用方如果改了这个地址,那么他的改动调用方就获得不到了。
ref:调用阶段数据先在内存里,地址在栈上,传的时候在内存里放一个指针,原来栈上的地址先在指向这个指针,而这个指针指向数据,传的时候把栈上的地址传进去,被调用修改的时候可能改这个指针所指的数据的内容,也可能改这个指针所指的地址。