utilizar usar tipos propiedades potencia entre ejemplos diferencia cuando conjuntos conjunto como class powershell properties

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