值传递, 只是传递副本, 而引用传递, 是传递一个地址~

 
  
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5.  
  6. namespace ConsoleApplication10 
  7.     class Program 
  8.     { 
  9.         static void Main(string[] args) 
  10.         { 
  11.             int v = 42; 
  12.             int r = 42; 
  13.             DoWorkVal(v); 
  14.             DoWorkRef(ref r); 
  15.             Console.WriteLine("值传递,结果为{0}!",v); 
  16.             Console.WriteLine("引用传递,结果为{0}!", r); 
  17.         } 
  18.  
  19.         static void DoWorkVal(int param) 
  20.         { 
  21.             param += 10; 
  22.         } 
  23.  
  24.         static void DoWorkRef(ref int param) 
  25.         { 
  26.             param += 10; 
  27.         } 
  28.     } 

 对于值传递, 只是传递个副本, 因此void的函数没有返回值, 所以在输出v的时候还是原来的值, 没有变化. 对于引用传递, 则是把地址传递过去,  因此在函数DoWorkRef调用后, r也会随着变化, 因此会+10, 所以输出的结果就是52了~