2011-08-18 67 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

相关问题