C#的ref和out使用

ref和out是C#中用于参数传递的关键字,它们都允许在方法内部修改参数的值,区别如下:

1、ref关键字:使用ref关键字声明的参数,在方法调用前必须被初始化,并且可以被视为已经赋予了一个初始值。在方法内部对ref参数的修改会影响到方法外部传入的实参,也就是说,我在方法内部修改了局部的值,那么全员变量的值也会被修改

public class test : MonoBehaviour
{
    [SerializeField] int a;
    // Start is called before the first frame update
    void Start()
    {
        XiuGai(ref a);
    }

    // Update is called once per frame
    void XiuGai(ref int b)
    {
        b = 100;
    }
}

2、out关键字:使用out关键字声明的参数,在方法内部不需要被初始化,可视为未赋初始值。在方法内部必须对out参数进行赋值,否则会导致编译错误。与ref关键字不同,out参数可以在方法内部确定其值,也就是说方法内部必须对局部变量赋值

public class test : MonoBehaviour
{
    [SerializeField] int a;
    // Start is called before the first frame update
    void Start()
    {
        XiuGai(out a);
    }

    void XiuGai2(out int b)
    {
        b = 50;
    }
}

  

3、总结:ref传的值在方法内部可以不修改其值,out则必须修改

4、这个可以用在任务管理器,或者需要实时更新的参数上,用途还是很大的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

故渊9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值