ref參數

ref 參數,是計算中編程術語,指關鍵字使參數按引用傳遞。其效果是,當控制權傳遞迴調用方法時,在方法中對參數所做的任何更改都將反映在該變數中。

功能

ref功能:  ref 關鍵字使參數按引用傳遞。其效果是,當控制權傳遞迴調用方法時,在方法中對參數所做的任何更改都將反映在該變數中。簡單點說就是,使用了 refout的效果就幾乎和C中使用了指針變數一樣。它能夠讓你直接對原數進行操作,而不是對那個原數的Copy進行操作。

定義方式

若要使用 ref 參數,則方法定義和調用方法都必須顯式使用 ref 關鍵字。例如:

class RefExample

{

static void Method(ref int i)

{

i = 44;

}

static void Main()

{

int val = 0;

Method(ref val); // val is now 44

}

}

注意事項

傳遞到 ref 參數的參數必須最先初始化。這與 out 不同, out 的參數在傳遞之前不需要顯式初始化。

儘管 refout 在運行時的處理方式不同,但它們在編譯時的處理方式是相同的。因此,如果一個方法採用 ref 參數,而另一個方法採用 out 參數,則無法重載這兩個方法。

例如,從編譯的角度來看,以下代碼中的兩個方法是完全相同的,因此將不會編譯以下代碼:

class CS0663_Example

{

// compiler error CS0663: "cannot define overloaded

// methods that differ only on ref and out"

public void SampleMethod(ref int i)

{

}

public void SampleMethod(out int i)

{

}

}

但是,如果一個方法採用 ref 或 out 參數,而另一個方法不採用這兩類參數,則可以進行重載,如下所示:

class RefOutOverloadExample

{

public void SampleMethod(int i)

{

}

public void SampleMethod(ref int i)

{

}

}

相關詞條

相關搜尋

熱門詞條

聯絡我們