static void Main (string[] args) {
int n = 0;
//是指n把自己複製一份給A()的方法參數p(或者稱為n傳0這個值給p),意味著n、p是分別兩種不一樣的物件,互不干擾
A(n);
Debug.Log("n=" + n);//output:n=0
//是指n把自己的記憶體位置傳給ARef()的方法參數p,意味著n、p共用一個記憶體
ARef(ref n);
Debug.Log("n=" + n);//output:n=2
//也是傳記憶體位置給AOut()的方法參數p(所以此時n跟p使用同一個記憶體),但是離開AOut()方法前,一定會被重新覆寫p(也等於重新覆寫n)
AOut(out n);
Debug.Log("n=" + n);//output:n=3
}
static void A (int p) {
p = 1;
}
static void ARef (ref int p) {
p = 2;
}
static void AOut (out int p) {
p = 3;
}