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

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";
                
                
                    }