2.方法的參數修飾符 ref ,out ,params:
默認情況下,對於值類型參數的傳遞,其形參(Formal parameter)是實參(Formal parameter)的拷貝。在方法中對於形參所作的任何更改不會影響到實參。 對於引用類型的參數的傳遞,其形參(Formal parameter)是實參(Formal parameter)的部分拷貝(shallow clone),通常也叫淺拷貝。 形參只拷貝了的引用部分(即:在棧中存儲的部分),這個引用同樣指向實參的在堆(Heap)中的對象數據。 在這種情況下,方法內部對於形參的引用指向的成員數據改變將反映到實參,而對於形參的引用本身的更改不會影響到實參。
例:
class MyClass
{
public int Val = 20;
}
class Program
{
static void MyMethod(MyClass f1, int f2)
{
f1.Val = f1.Val + 5;
f2 = f2 + 5;
f1 = new MyClass();
}
static void Main()
{
MyClass A1 = new MyClass();
int A2 = 10;
MyMethod(A1, A2); // Call the method.
}
}