2016-05-31 3 views
2

В PowerShell (v2), как вы добавляете частным членам PSObject?PowerShell - как добавить частных пользователей?

То есть, члены, к которым можно получить доступ только через $this с помощью ScriptProperty или ScriptMethod.

+0

Привет, нашел это: http://powershell.org/forums/topic/can-advanced-functions-be-added-to-custom-objects/ – sodawillow

ответ

2

До введения classes в версии 5.0 система расширенного типа 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 
Смежные вопросы