在 C# 中,哈希表默认是按引用传递还是按值传递?

reg*_*EAH 2 c# hashtable

我想知道默认情况下 Hashtable 是按引用传递还是按值传递?

Roy*_*tus 5

在 C# 中,所有参数均按值传递。ButHashTable是一个引用类型,因此传递的值是对实际 的引用HashTable(如果有意义的话)。

因此,这意味着当您将哈希表作为参数传递时,哈希表不会被复制,但如果您尝试像这样覆盖参数值:

private void SomeMethod(HashTable ht)
{
   ...
   ht = new HashTable();
   ...
}
Run Code Online (Sandbox Code Playgroud)

那么它将不起作用,因为您正在覆盖 value 参数,而不是实际的HashTable.