2012-03-29 43 views
0

我想知道默认情况下是通过引用还是按值传递Hashtable?在C#中哈希表是通过引用或按默认值传递的?

+1

[传递参数(C#)](http://msdn.microsoft.com/en-us/library/0f66670z(VS.71).aspx) – Default 2012-03-29 10:30:41

+0

函数的参数按值传递,除非另有说明(ref和out) – Magnus 2012-03-29 10:34:53

+0

你也可以查看Jon Skeets关于[参数在C#中传递]的说法(http://www.yoda.arachsys.com/csharp/parameters.html) – Default 2012-03-29 10:34:59

回答

3

在C#中,所有参数都是按值传递的。但HashTable是参考类型,所以传递的值是对实际的HashTable的参考,如果有意义的话。

因此,它意味着哈希表,当你把它作为一个参数不被复制,但如果你试图覆盖参数值,像这样:

private void SomeMethod(HashTable ht) 
{ 
    ... 
    ht = new HashTable(); 
    ... 
} 

那么它将无法工作,因为你覆盖值参数,而不是实际的HashTable

-1

对该散列表的引用是按值传递的(除非指定了ref)。