2011-08-18 128 views
0

下面是我的代碼請解釋什麼是參考cboListType。關鍵字ref在C#中的含義是什麼?

Lists.LoadListTypes(ref cboListType); 

public static void LoadListTypes(ref DropDownList dropDown) 
{ 
    if (!Util.IsCached(LIST_TYPES)) 
    { 
     Util.InsertIntoCache(LIST_TYPES, DataAccess.ListListTypes()); 
    } 

    dropDown.DataSource = (DataTable)Util.GetFromCache(LIST_TYPES); 
    dropDown.DataBind(); 
    dropDown.Items.Insert(0, new ListItem("", "")); 
} 
+0

如果我說'對DropDownList對象的引用',這會幫助你嗎? –

+2

您是否想了解ref關鍵字,下拉列表是什麼,或者可能是別的? – jlafay

+1

這是你的代碼,你不知道它是幹什麼的? – Joe

回答

2

ref關鍵詞的意思是「通過參考」。當您通過一些DropDownList參考LoadListTypes()此引用可能會更改。所以在這個調用之後,你傳遞的引用可以引用絕對另一個對象。

void func(ref MyClass mc) 
{ 
    mc = new MyClass(2); 
} 

MyClass mc = new MyClass(1); 
MyClass mc2 = mc; 
// mc and mc2 are the same 
func(ref mc); 
// mc and mc2 may differ 
1

C#ref關鍵字導致方法引用傳遞給方法的相同變量。當控制傳回時,對該變量所做的任何更改都會反映在該變量中。

+0

http:// msdn .microsoft.com/en-us/library/14akc2c7%28v = vs.71%29.aspx – ANeves

+0

謝謝Josh的回覆。當我們需要使用這個ref關鍵字時,我還有一個疑問: – shaker

+0

它主要用於在一個方法內改變像struct,int,char等等的值類型,而不是返回一個值。如果你有一個不是結構的對象(即一個類),那麼通過ref傳遞是隱式完成的,因爲該對象已經是一個引用類型,所以在該方法內進行的任何更改都會影響該對象。 – Josh

3

ref keyword表示通過引用傳遞參數。

在你發佈的代碼中,這是完全沒用的,因爲該方法不會改變參數的值(改變參數的屬性不需要通過引用來傳遞它,至少不是如果它是引用類型)

1

請參閱傳遞給方法的相同DropDownList。

Here瞭解更多詳情。

0

From MSDN

上的方法參數裁判方法參數關鍵字使一個方法 指代通入方法相同的變量。任何 在控制權返回給調用方法時,對該方法中的參數所做的更改將反映在該變量中 變量中。

+1

謝謝Squid的回覆。 – shaker

+1

你能用例子來解釋我嗎? – shaker

+0

我想明白'ref'關鍵字是用來讓對象的方法進行持久更改的。您可以使用ref關鍵字對值類型參數進行持久更改。如果你還沒有學習到值類型和引用類型之間的區別,我會看看下面的鏈接。祝你好運! http://msdn.microsoft.com/en-us/library/0f66670z(v=vs.71).aspx – SquidScareMe

相關問題