ref/out/none的区别

1,首先ref和out的区别

可以划分为调用和被调用两个阶段

                      ref                      out

在调用阶段       需要初始化            初不初始化都行

在被调用阶段    初不初始化都行      需要初始化

 

2,ref和none的区别

ref实际上就是又装了一次箱

分值类型和引用类型

值类型:

none:调用阶段在栈上,传的时候把栈的值传进去

ref:调用阶段先在栈上,传的时候把值装箱,然后把栈上的地址传进去,被调用修改的时候改传入地址指向的内存的内容

 

引用类型:

none:调用阶段数据在内存里,地址在栈上,传的时候把栈上的地址传进去。被调用方如果改了这个地址,那么他的改动调用方就获得不到了。

ref:调用阶段数据先在内存里,地址在栈上,传的时候在内存里放一个指针,原来栈上的地址先在指向这个指针,而这个指针指向数据,传的时候把栈上的地址传进去,被调用修改的时候可能改这个指针所指的数据的内容,也可能改这个指针所指的地址。

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2011-11-23 17:14  理想Ideal  阅读(161)  评论(0编辑  收藏  举报

导航