usar - id y class en css
Implemento de clase Powershell obtener propiedad de conjunto (1)
Puede usar Add-Member ScriptProperty
para lograr un tipo de getter y setter:
class c {
hidden $_p = $($this | Add-Member ScriptProperty ''p'' `
{
# get
"getter $($this._p)"
}`
{
# set
param ( $arg )
$this._p = "setter $arg"
}
)
}
Newing it invoca el inicializador de $_p
que agrega propiedad de script p
:
PS C:/> $c = [c]::new()
Y el uso de la propiedad p
produce lo siguiente:
PS C:/>$c.p = ''arg value''
PS C:/>$c.p
getter setter arg value
Esta técnica tiene algunos inconvenientes que en su mayoría están relacionados con lo prolija y propensa a errores de la línea Add-Member
. Para evitar esas trampas, implementé Accessor
que puedes encontrar aquí .
Usar Accessor
lugar de Add-Member
hace una cantidad de comprobación de errores y simplifica la implementación de la clase original a esto:
class c {
hidden $_p = $(Accessor $this {
get {
"getter $($this._p)"
}
set {
param ( $arg )
$this._p = "setter $arg"
}
})
}
¿Cómo puedo implementar una propiedad get / set con la clase Powershell? Por favor, eche un vistazo a mi ejemplo a continuación:
Class TestObject
{
[DateTime]$StartTimestamp = (Get-Date)
[DateTime]$EndTimestamp = (Get-Date).AddHours(2)
[TimeSpan] $TotalDuration {
get {
return ($this.EndTimestamp - $this.StartTimestamp)
}
}
hidden [string] $_name = ''Andreas''
[string] $Name {
get {
return $this._name
}
set {
$this._name = $value
}
}
}
New-Object TestObject