C#中 引用参数和输出参数有什么不同?他们以什么方式传递?

 我来答
百度网友41ba1a9
推荐于2018-05-06 · 超过10用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:34.6万
展开全部
没什么太大区别。。
一个用关键字REF标示,一个用OUT标示。
牵扯到数据是引用类型还是值类型。
一般用这两个关键字你是想调用一个函数将某个值类型的数据通过一个函数后进行更改。传OUT定义的参数进去的时候这个参数在函数内部必须初始化。否则是不能进行编译的。ref和out 都是传递数据的地址,正因为传了地址,才能对源数据进行修改。
一般情况下不加ref或者out的时候,传值类型的数据进去实际上传进去的是源数据的一个副本,也就是在内存中新开辟了一块空间,这里面存的值是与源数据相等的,这也就是为什么在传值类型数据的时候你如果不用return是无法修改原值的原因。但是你如果用了REF,或者OUT,这一切问题都解决了,因为他们传的是地址。
out比起REF来说,还有一个用法就是可以作为多返回值来用,都知道函数只能有一个返回值,C#里,如果你想让一个函数有多个返回值,那么OUT能很容易解决。
yanshl
2010-03-26 · TA获得超过412个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:242万
展开全部
引用参数以ref为关键字,这种参数是要在调用之前就初始化的。这参数一般情况下是从外部向内部传递数值的时候使用,对于托管代码加ref和不加基本相同,但是对于托管代码就有所区别。

输出参数以out为关键字,这种参数不需要输入确定的值,实际的对象是在方法内部初始化,由方法内部给这种参数赋值。一般是调用该方法之后,需要方法输出一些数据的时候使用。因为有时候方法的返回值可能用作他用,而这时还想让方法输出其他的数据,就可以使用out参数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cdee8e5
2010-03-26 · 超过28用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:65.8万
展开全部
引用参数:以关键字ref定义,采用引用传递
输出型参数:以关键字out定义,采用引用传递,其实参可以不进行初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式