【发布时间】:2016-05-31 10:59:08
【问题描述】:
在 PowerShell (v2) 中,如何将 private 成员添加到 PSObject?
也就是说,只能从 ScriptProperty 或 ScriptMethod 中通过 $this 访问的成员。
【问题讨论】:
-
嗨,找到了这个:powershell.org/forums/topic/…
标签: oop powershell
在 PowerShell (v2) 中,如何将 private 成员添加到 PSObject?
也就是说,只能从 ScriptProperty 或 ScriptMethod 中通过 $this 访问的成员。
【问题讨论】:
标签: oop powershell
在版本 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
【讨论】: