【发布时间】:2021-08-25 10:08:57
【问题描述】:
假设我有一个哈希表:
$HashTable = @{}
现在,当我想向 Hashtable 添加一些内容时,我通常会这样做:
$HashTable.Something = 'Something'
当我测试 $hashTable 时,它会显示这个输出:
$HashTable
Name Value
---- -----
Something Something
我的一位同事使用了 Add-Member:
$HashTable | Add-Member -NotePropertyName 'SomethingAddMember' -NotePropertyValue 'SomethingAddMember'
它可以工作,但是当你查看 $HashTable 时,它仍然只会显示:
$HashTable
Name Value
---- -----
Something Something
当我运行这个 $HashTable.SomethingAddMember 时,它会出现:
$HashTable.SomethingAddMember
为什么它没有出现在 HashTable 本身中?当我将它转换为 Json 时,它又出现了!这有多令人困惑,还是我错过了什么?
$HashTable | ConvertTo-Json
{
"Something": "Something",
"SomethingAddMember": "SomethingAddMember"
}
是不是因为 Add-Member 向 HashTable 添加了一个新属性,而不是 Keys with Values?怎么会这样?
【问题讨论】:
-
“是不是因为 Add-Member 向 HashTable 添加了一个新属性,而不是 Keys with Values?” - 是的,这正是为什么:)
标签: powershell properties hashtable