我希望有人可以帮助我解决以下问题:
Function Get-FormattedNameValuePair([string] $name, [object] $value)
{
return "$("{0,-24}" -f $name) : $("{0,15:N2}" -f $value)"
}
Write-Output (Get-FormattedNameValuePair -name MyField -value 1234)
以上返回:
MyField : 1234
然而,我期待:
MyField : 1,234.00
如果我在 1234 周围添加评估括号,则会正确返回预期结果:
Write-Output (Get-FormattedNameValuePair -name MyField -value (1234))
如果直接调用而不是包装在“Get-FormattedNameValuePair”函数中,格式化也可以在没有评估括号的情况下工作。
[string] $name = "MyField"
[object] $value = 1234
Write-Output "$("{0,-24}" -f $name) : $("{0,15:N2}" -f $value)"
谁能解释上面的行为?