0
我想知道默认情况下是通过引用还是按值传递Hashtable?在C#中哈希表是通过引用或按默认值传递的?
我想知道默认情况下是通过引用还是按值传递Hashtable?在C#中哈希表是通过引用或按默认值传递的?
在C#中,所有参数都是按值传递的。但HashTable
是参考类型,所以传递的值是对实际的HashTable
的参考,如果有意义的话。
因此,它意味着哈希表,当你把它作为一个参数不被复制,但如果你试图覆盖参数值,像这样:
private void SomeMethod(HashTable ht)
{
...
ht = new HashTable();
...
}
那么它将无法工作,因为你覆盖值参数,而不是实际的HashTable
。
对该散列表的引用是按值传递的(除非指定了ref
)。
[传递参数(C#)](http://msdn.microsoft.com/en-us/library/0f66670z(VS.71).aspx) – Default 2012-03-29 10:30:41
函数的参数按值传递,除非另有说明(ref和out) – Magnus 2012-03-29 10:34:53
你也可以查看Jon Skeets关于[参数在C#中传递]的说法(http://www.yoda.arachsys.com/csharp/parameters.html) – Default 2012-03-29 10:34:59