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

questionAnswers(3)

yourAnswerToTheQuestion