值傳遞, 只是傳遞副本, 而引用傳遞, 是傳遞一個地址~
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication10
- {
- class Program
- {
- static void Main(string[] args)
- {
- int v = 42;
- int r = 42;
- DoWorkVal(v);
- DoWorkRef(ref r);
- Console.WriteLine("值傳遞,結果爲{0}!",v);
- Console.WriteLine("引用傳遞,結果爲{0}!", r);
- }
- static void DoWorkVal(int param)
- {
- param += 10;
- }
- static void DoWorkRef(ref int param)
- {
- param += 10;
- }
- }
- }
對於值傳遞, 只是傳遞個副本, 因此void的函數沒有返回值, 所以在輸出v的時候還是原來的值, 沒有變化. 對於引用傳遞, 則是把地址傳遞過去, 因此在函數DoWorkRef調用後, r也會隨着變化, 因此會+10, 所以輸出的結果就是52了~