Czy Arraylist jest przekazywany do funkcji przez odwołanie w PowerShell
Dowiedziałem się dzisiaj, że arraylista, który przekazałem do funkcji, zostaje zmieniony, gdy usuwam wartość z arraylisty w obrębie funkcji. Poniższy kod sugeruje, że przekazywanie odbywa się przez odniesienie. Dlaczego miałoby to być? Czy to z założenia czy jakiś błąd? (Używam v4 w Win 8.1)
function myfunction {
param (
[System.Collections.ArrayList]$local
)
"`$local: " + $local.count
"removing 1 from `$local"
$local.RemoveAt(0)
"`$local:" + $local.count
}
[System.Collections.ArrayList]$names=(Get-Content c:\temp\names.txt)
"`$names: " + $names.count
myfunction -local $names
"`$names: " + $names.count
WYNIK:
$names: 16
$local: 16
removing 1 from $local
$local:15
$names: 15