为了账号安全,请及时绑定邮箱和手机立即绑定

.NET中ref和out参数之间的区别

.NET中ref和out参数之间的区别

明月笑刀无情 2019-07-29 11:29:07
.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是已经使用某些东西的返回值的函数(例如)的附加输出。


查看完整回答
反对 回复 2019-07-29
?
BIG阳

TA贡献1859条经验 获得超6个赞

为什么C#同时具有'ref'和'out'?

取出参数的方法的调用者不需要分配给在调用之前作为out参数传递的变量; 但是,被调用者需要在返回之前分配out参数。

相比之下,ref参数被认为最初由呼叫者分配。因此,被调用者在使用之前不需要分配给ref参数。Ref参数传入和传出方法。

所以,out意味着,而ref不是进出。

这些与COM接口的参数[out][in,out]参数紧密对应,参数的优点是,在out被调用的方法不需要的情况下,调用者不需要传递预先分配的对象 - 这既避免了分配成本,又避免了任何成本可能与编组有关(更可能与COM有关,但在.NET中并不罕见)。


查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 1307 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信