int a = 1; int b = 2; public void ChangeNumber(int a, int b) { int t = a; a = b; b = t; Debug.LogFormat("方法内a=>{0}", a); Debug.LogFormat("方法内b=>{0}", b); } private void Start() { ChangeNumber(a, b); Debug.LogFormat("方法外a=>{0}", a); Debug.LogFormat("方法外b=>{0}", b); }
public void ChangeNumber(ref int a,ref int b) { int t = a; a = b; b = t; Debug.LogFormat("方法内a=>{0}", a); Debug.LogFormat("方法内b=>{0}", b); } private void Start() { ChangeNumber(a, b); ChangeNumber(a, ref b); Debug.LogFormat("方法外a=>{0}", a); Debug.LogFormat("方法外b=>{0}", b); }
public void GetResult(out int num,out int ave) { num = a + b; ave = num / 2; } private void Start() { //尽管作为 out 参数传递的变量不必在传递之前进行初始化,但需要在调用方法前先声明。 GetResult(out int num, out int ave); Debug.LogError("num==>" + num); Debug.LogError("ave==>" + ave); }
总结:ref在使用前必须进行初始化,out 参数传递的变量不必在传递之前进行初始化,但是需要在调用方法前声明。Ref又进又出,Out出不进。那么在什么情况下使用Ref和Out呢?重点重点重点: