function test1{
param([System.Collections.ArrayList]$x
)
$x.Add("Test1Add")
write "in Test1 $x"
}
$x=New-Object System.Collections.ArrayList
路過此處引用類型參數是我的代碼後,我跑測試1,結果將是:在PowerShell中
PS C:\Windows> test1 $x
0
in Test1 Test1Add
PS C:\Windows> $x
Test1Add
我想知道爲什麼會這樣,我想,當調用test1的,它就像傳一個引用類型爲test1的指針,就像C#或其他語言一樣?值類型像int,我必須使用$ script:x來更改gloabl範圍中的x。在此先感謝
你期望發生什麼? – arco444
我首先測試了[int]類型參數,一個值類型,全局範圍內的x沒有改變。然後我嘗試了這個,發現它改變了,所以我想知道我的猜測是否正確 – Vigilantewang