在 C# 中,所有参数均按值传递。ButHashTable是一个引用类型,因此传递的值是对实际 的引用HashTable(如果有意义的话)。
因此,这意味着当您将哈希表作为参数传递时,哈希表不会被复制,但如果您尝试像这样覆盖参数值:
private void SomeMethod(HashTable ht)
{
...
ht = new HashTable();
...
}
Run Code Online (Sandbox Code Playgroud)
那么它将不起作用,因为您正在覆盖 value 参数,而不是实际的HashTable.