C#按值傳遞參數
這是默認的機製傳遞參數的方法。在這個機製中,當一個方法被調用時,創建每個值參數在一個新的存儲位置。
實際參數的值複製它們。所以,該參數在方法中的變化對參數冇有影響。下麵的例子演示了這一概念:
using System; namespace CalculatorApplication { class NumberManipulator { public void swap(int x, int y) { int temp; temp = x; /* save the value of x */ x = y; /* put y into x */ y = temp; /* put temp into y */ } static void Main(string[] args) { NumberManipulator n = new NumberManipulator(); /* local variable definition */ int a = 100; int b = 200; Console.WriteLine("Before swap, value of a : {0}", a); Console.WriteLine("Before swap, value of b : {0}", b); /* calling a function to swap the values */ n.swap(a, b); Console.WriteLine("After swap, value of a : {0}", a); Console.WriteLine("After swap, value of b : {0}", b); Console.ReadLine(); } } }
讓我們編譯和運行上麵的程序,這將產生以下結果:
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :100 After swap, value of b :200
這表明,數值冇有被改變;雖然它們已經在函數內部改變。