C# 中的 refout 都相当于传地址(引用传递),调用者传入的是变量的引用,而非值的副本。

ref

ref 传递引用,要求变量在传入之前必须已完成初始化。

    void Start ()
    {
        string str="11111";
        func(ref str);
        print(str);
	}
    void func(ref string str)
    {
        str = "2222";


    }

out

out 同样传递引用,但不要求调用前初始化,而是要求在被调用函数内完成初始化。

void Start () {

        string str;
        func(out str);
        print(str);
	}
    void func(out string str)
    {
        str = "2222";


    }