PowerShell - 如何添加私有成员?

时间:2016-05-31 10:59:09

标签: oop powershell

在PowerShell(v2)中,如何将私有成员添加到PSObject中?

即只能通过ScriptProperty或ScriptMethod中的$this访问的成员。

1 个答案:

答案 0 :(得分:2)

在5.0版中引入classes之前,PowerShell扩展类型系统(ETS)与基础类型系统(.NET / CTS)没有相同的访问修饰符概念。

向用户暗示“不要直接使用”的一种方法是使用“内部”属性的前缀,例如__(双下划线):

$object = New-Object psobject -Property @{
    Public    = 4
    __private = 9
} |Add-Member -MemberType ScriptProperty -Name Private -Value {
    $this.__private 
  } -SecondValue { 
    param([int]$newValue) 

    if(($newValue % 3) -ne 0){
      Write-Warning "Only multiples of 3 allowed"
    } else {
      $this.__private = $newValue
    }
} -PassThru