C#-ref/out

值传递:把数值传进去,自身不进去。
引用传递:把自己传到方法内部去。
值类型默认是值传递,引用类型默认是引用传递。

想要值类型引用传递,需要在参数类型前添加关键词ref/out;
二者酌情况使用。

ref和out的区别
语法不同,但都是引用传递,ref表示参数做引用传递,参数必须有初始化,out表示多返回值,参数传递时不需要有值,内部创建数据返还传去。

using UnityEngine;

public class Test : MonoBehaviour {
    void Start() {
        Operation operation = new Operation();
        int a = 10;
        // ref传入时外部必须有值
        operation.Add(ref a);
        int b;
        // out是通过方法内部进行赋值,是用于多返回值
        operation.Sub(out b);
    }
}

class Operation {

    public void Add(ref int a) {
        a += 10;
    }

    public void Sub(out int a) {
        a = 10;
    }
}
posted @ 2022-08-20 16:45  坞中客  阅读(43)  评论(0)    收藏  举报