ref,out,in 关键字的异同

本文详细比较了C#编程中ref、in和out参数的共同点和不同点,包括它们的传递方式、是否允许修改、使用限制以及out参数的优势。着重强调了这些关键字在方法签名中的适用规则。
摘要由CSDN通过智能技术生成


ref参数称为引用参数, in参数称为输入参数,out参数称为输出参数。

相同点


ref,out,in标记的参数都是引用传递。
ref,out,in关键字都不能约束方法签名。
形参使用了ref,out,in关键字,传递参数时也需要添加ref,out,in关键字。

不同点


in形参不让修改。所以in实参必须初始化。
out形参必须修改。所以out实参不需要初始化。
ref形参修改和不修改都行。ref实参也是必须初始化。

注意:
如果使用in关键字,就不能使用ref和out;
如果使用ref关键字,就不能使用in和out;
如果使用out关键字,就不能使用in和ref;
即:ref,in,out三者不能组合,不能同时使用到数据类型前但可以分开使用到数据类型前。

ref/out后的实参不能是只读的,ref/out/in后的实参不能是常量。

out输出参数还有一个优点:可以让方法多一个返回结果。

params 参数必须传递一维数组,可变参数 个数不确定且可变参数必须为最后一个参数


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值