【发布时间】:2015-01-02 15:46:35
【问题描述】:
有什么区别:
$A="Something"
和
$A.Value="Something"
我发现这仅在使用 .Value 时才有效:
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" 只是在更改内容,但我还没有找到确认。
【问题讨论】:
-
您正在寻找的答案应该在About_Ref 中。尝试更改对象时使用
.Value似乎只是事实。类型从字符串变为System.Management.Automation.PSReference而在SetByRef1仅供参考。 -
当你使用解引用操作符时,这真的就像在 C++ 中一样吗?
标签: variables powershell