在PSObject声明字面量中,能否直接引用同一对象的其他属性值?
问题:能否在PSCustomObject字面量内部引用已有属性值
请问是否可以在[pscustomobject]字面量声明内部,引用该对象已定义的属性值?示例代码如下:
[pscustomobject] @{ Number = 5 IsLessThanZero = $this.Number -lt 0 }
相关说明与致谢
- 特别感谢Santiago和Michael补充了关键细节,解决了该场景下的行为特性问题,他们一直是可靠且准确的技术资源。
- 问题中的示例特意未将对象赋值给变量,目的是演示创建对象后直接输出的常见使用场景,以下代码可更清晰地体现这一点:
[pscustomobject] @{ Number = 5 IsLessThanZero = $this.Number -lt 0 } | Out-Default - Santiago和Michael的回答覆盖了静态与动态两种实现方案,实用性很强。针对本问题的简化示例,其实无需使用动态方案,原因如下:
- 属性
.Number的值从对象创建到输出全程未被修改 - 仅涉及单个对象,前后无额外代码逻辑
- 属性
- 示例中使用
$this仅为指代当前对象(本问题与类无关,但核心逻辑类似)。若改用$_容易造成混淆,因为[pscustomobject]声明前不存在隐含管道。 - 关于本问题是否为重复问题的说明:另有一个问题的示例使用了
$_,与本问题场景不同,因此二者不属于重复问题。
内容的提问来源于stack exchange,提问作者Paul π
相关产品推荐
相关产品推荐

