Ref/Out
1.相同点
ref/out中C#代替指针功能,按照地址传递,使用ref/out都将强行改变原有放在堆栈的值类型值。
例子:
(1)
int a =1;
Fun(a);
printf(a);
------------------
(2)
int b = 1;
Fun(out/ref b);
printf(b);
-------------------
比较a和b,区别就知道了。
优点:我们需要把原有值类型值当参数传入某个方法时得到这个值类型的新值。(尤其在做sdk开发时用的多些)。
另一个优点是,可以以这种Fun()里的多个参数返回给程序员想用的对应参数值。
2.不同点
ref:
Fun()函数内部没有重新定义b的值,Fun外部的b值即为Fun内部b初始值。
需要被调用的方法修改调用者的引用的时候。
out:
Fun()函数内部有重新定义的b值,不承认Fun外部的b值,牛气的Fun()内部自己初始化
需要返回多个值时需要用Out