读书人

HashTable的引用是否可以用“传值”/“

发布时间: 2012-01-23 21:57:28 作者: rapoo

HashTable的引用是否可以用“传值”/“传参”来区分?
一个自定义的Attribute类

class Attribute : IAttribute
{
Hashtable _IndexNameTable;
Hashtable _Table;

...

public void Add(string name, string value)
{
//_Table = new Hashtable();
_Table.Add(name, value);
_IndexNameTable.Add(_IndexNameTable.Count, name);
}
//初始化HashTable
private void initHashTable(ref Hashtable ht)
{
if (ht == null)
ht = new Hashtable();
}

public Attribute()
{
initHashTable(ref _IndexNameTable);
initHashTable(ref _Table);
}
}
调用该类
Attribute att = new Attribute();//实例该类的时候,应该执行了两个initHashTable方法来初始化两个HashTable.
att.Add("a", "aaaa");

我在initHashTable方法中不使用ref的话,_IndexNameTable/_Table仍为null.请问HashTable也是传值的吗?麻烦讲解得稍微详细点。


[解决办法]
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
[解决办法]

探讨
谢谢,ref没问题,我主要想了解HashTable量在传递过程中为什么不是一个指针。

读书人网 >C#

热点推荐