psobject 声明文字 - 有没有办法让属性值引用声明本身中另一个属性的值?

问题描述 投票:0回答:1

简单地说,有没有一种方法可以引用 psobject 声明文字内的(现有)属性值,基本上就像这样?

[pscustomobject] @{
    Number = 5
    IsLessThanZero = $this.Number -lt 0
}
powershell psobject
1个回答
0
投票

使用

ScriptProperty
,通过
Update-TypeData
:

$updateTypeDataSplat = @{
    TypeName   = 'myType'
    MemberName = 'IsLessThanZero'
    Value      = { $this.Number -lt 0 }
    MemberType = 'ScriptProperty'
}

Update-TypeData @updateTypeDataSplat

$myObject = [pscustomobject] @{
    Number     = 5
    PSTypeName = 'myType'
}
$myObject

或者将

ScriptProperty
添加到
psobject
本身:

$myObject = [pscustomobject] @{
    Number = 5
}
$myObject.PSObject.Members.Add([psscriptproperty]::new(
        'IsLessThanZero', { $this.Number -lt 0 }))
$myObject
© www.soinside.com 2019 - 2024. All rights reserved.