Я могу изменить свойство PSCustomObject, например Array:
$a.b.c += "new item"
Возможно ли это сделать с помощью функции? Я имею в виду передать $a.b.c
, чтобы функционировать и модифицировать его. Кажется, это не тривиально (если возможно, даже): я попробовал [ref]
, но безуспешно. Единственный способ, который мне подходит, это вернуть новое значение и присвоить его, но это включает выражение $a.b.c
с обеих сторон вызова функции, что делает строку длинной. Я пробовал также:
function AddItem {
Param(
$Obj,
$Value,
[switch]$Uniq
)
$MutObj = [System.Collections.ArrayList]$Obj
$MutObj.Add($Value) > $null
}
но это также не работает, кажется, что $a.b.c += x
на самом деле change property "c" of $a.b object
, а у меня нет $a.b
в области действия функции. Это достижимо даже с помощью функции и с изменениями в своем теле?