【问题标题】:PowerShell - how to add private members?PowerShell - 如何添加私有成员?
【发布时间】:2016-05-31 10:59:08
【问题描述】:

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

也就是说,只能从 ScriptProperty 或 ScriptMethod 中通过 $this 访问的成员。

【问题讨论】:

标签: oop powershell


【解决方案1】:

在版本 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多