1 class Program 2 { 3 //數組是引用類型 4 //如果把數組或類等其他引用類型傳遞給方法,對應的方法就會使用該引用類型改編數組中值, 5 //而新值會反射到原始數組上 6 static void SomeFunction(int[] ints, int i) 7 { 8 int ...
1 class Program 2 { 3 //數組是引用類型 4 //如果把數組或類等其他引用類型傳遞給方法,對應的方法就會使用該引用類型改編數組中值, 5 //而新值會反射到原始數組上 6 static void SomeFunction(int[] ints, int i) 7 { 8 ints[0]= 100; 9 i = 10; 10 } 11 12 //ref參數;使用關鍵字的參數會,方法會影響到對應參數的數值改變 13 //而且ref參數需要初始化 14 static void SomeFunction1(ref int j) 15 { 16 j = 100; 17 } 18 19 //out參數;out參數可以不需要初始化 20 //該參數通過引用傳遞,方法返回w是會保留對w數值的改變 21 static void SomeFunction2(out int w) 22 { 23 w = 100; 24 } 25 26 static void Main(string[] args) 27 { 28 #region SomeFunction 29 30 int[] ints = { 1, 2, 3, 4 }; 31 int i = 1; 32 33 SomeFunction(ints, i); 34 35 Console.WriteLine(ints[0]); 36 Console.WriteLine(i); 37 38 39 //輸出結果:100,1 40 //其中i的之是沒有變化的 41 42 #endregion 43 44 #region SomeFunction1 45 46 int j = 1;//正確 47 //int j;//錯誤 48 49 SomeFunction1(ref j); 50 51 Console.WriteLine(j); 52 53 //輸出結果:100 54 //j的數值發生改變 55 56 #endregion 57 58 #region SomeFunction2 59 60 int w;//正確 61 //int w = 1;//正確 62 63 SomeFunction2(out w); 64 65 Console.WriteLine(w); 66 67 //輸出結果:100 68 //w的數值發生改變 69 70 #endregion 71 } 72 }View Code