ref與out一看就懂

        講解一下ref與out的小知識,形象總結的例子讓您運用起來的心應手,新手一看就懂,共同進步。ide

  
  
  
  
  1. class Program  
  2.     {  
  3.         static void Main(string[] args)  
  4.         {  
  5.  
  6.             //兩次調用show1方法,比較兩次的a值  
  7.             int a = 0;  
  8.             show1(a);  
  9.             Console.WriteLine(a);  
  10.             show1(a);  
  11.             Console.WriteLine(a + "\n");  
  12.  
  13.             //兩次調用show1的ref重載方法,比較兩次的a值  
  14.             int b = 0;  
  15.             show1(b);  
  16.             Console.WriteLine(b);  
  17.             show1(b);  
  18.             Console.WriteLine(b + "\n");  
  19.  
  20.             //調用show2方法(注:show1方法已經定義了ref的重載方法,則不能定義out的重載方法)  
  21.             int c = 0;  
  22.             show2(out c);  
  23.             Console.WriteLine(c);  
  24.  
  25.             //調用show3方法返回兩個不一樣類型的值  
  26.             int d = 0;  
  27.             string e = show3(out d);  
  28.             Console.WriteLine(d);  
  29.             Console.WriteLine(e);  
  30.  
  31.         }         
  32.         ///方法一      
  33.         protected static void show1(int i1)  
  34.         {  
  35.             i1++;  
  36.         }          
  37.         ///方法二  
  38.         protected static void show1(ref int i1)  
  39.         {  
  40.             i1++;  
  41.         }          
  42.         ///方法三         
  43.         protected static void show2(out int i1)  
  44.         {  
  45.             i1 = 5;  
  46.         }  
  47.         ///方法四         
  48.         protected static string show3(out int i1)  
  49.         {  
  50.             i1 = 5;  
  51.             return "注意我是怎麼返回了兩個不一樣類型值呢";  
  52.         } 

 

注:1.使用控制檯演示一下很是直觀,易懂spa

        2.放法1,2和1,3比較您會分別瞭解ref,out方法的用途與原理。xml

        3.方法2,3比較您會深入體會ref與out兩種引用傳遞的根本區別,ref的地址引用傳遞和out的值傳遞,ref會爲變量開闢一塊內存空間,保存該變量的地址,直到程序關閉。內存

        4.方法3,4比較您會了解out最經常使用的用法,方便實用。string

相關文章
相關標籤/搜索