2
之間有什麼區別:當使用.Value
,這是唯一的工作爲什麼在使用ByRef時應將變量分配給「.Value」?
$A="Something"
和
$A.Value="Something"
我看到:
function main
{
$A="Original A"
$B="Original B"
SetByRef1 ([ref]$A)
SetByRef2 ([ref]$B)
$A
$B
#output: Changed A
#output: Original B
}
function SetByRef1([ref]$A)
{
$A.Value = "Changed A"
}
function SetByRef2([ref]$B)
{
$B = "Changed B"
}
main
我猜,這$B = "Changed B"
被定義新變量B,而$A.Value = "Changed A"
只是更改內容,但我還沒有找到確認t帽子。
(我敢肯定,這是一個重複的,但我還沒有找到它)
您正在尋找的答案應該在[About_Ref](http://technet.microsoft.com/en-us/library/hh847792.aspx)中。嘗試更改對象時使用'.Value'只是一個事實。在SetByRef1中,類型從一個字符串到一個'System.Management.Automation.PSReference'。 – Matt