.NET中ref和out参数之间的区别.NET中的参数ref和out参数有什么区别?一个人比另一个人更有用的情况是什么?什么是一个可以使用而另一个不能使用的代码片段?
3 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
它们几乎是一样的 - 唯一的区别是你作为out参数传递的变量不需要初始化,但是将它作为ref参数传递它必须设置为某个东西。
int x;
Foo(out x); // OK
int y;
Foo(ref y); // Error: y should be initialized before calling the method
Ref参数用于可能被修改out的数据,参数用于数据,该数据int.TryParse是已经使用某些东西的返回值的函数(例如)的附加输出。
BIG阳
TA贡献1859条经验 获得超6个赞
取出参数的方法的调用者不需要分配给在调用之前作为out参数传递的变量; 但是,被调用者需要在返回之前分配out参数。
相比之下,ref参数被认为最初由呼叫者分配。因此,被调用者在使用之前不需要分配给ref参数。Ref参数传入和传出方法。
所以,out
意味着,而ref
不是进出。
这些与COM接口的参数[out]
和[in,out]
参数紧密对应,参数的优点是,在out
被调用的方法不需要的情况下,调用者不需要传递预先分配的对象 - 这既避免了分配成本,又避免了任何成本可能与编组有关(更可能与COM有关,但在.NET中并不罕见)。
- 3 回答
- 0 关注
- 1307 浏览
添加回答
举报
0/150
提交
取消