windows - Har powershell 5-klassen adgangs modifikatorer?

Indlæg af Hanne Mølgaard Plasc

Problem



Er der mulighed for at kontrollere medlemmernes adgang i Powershell-klasserne? På samme måde gør vi i c ++ eller C #. Hvordan kan vi skrive under C # klasse i Powershell


class Car
{
  private string engine;
  public string wheel\_type;

  public void drive()
  {
  }
  private int change\_engine(string new\_engine)
  {
  }
}

Bedste reference


Starter i PowerShell 5.0, tilføjer PowerShell klassestøtte.


Bemærk venligst, at PowerShell ikke tilbyder et privat søgeord.
Du kan dog bruge det skjulte søgeord, som vil gemme ejendommen/metoden fra intellisensen som standard (selv om det kan blive tvunget til at vises) og Get-Member cmdlet vil ikke returnere det skjulte medlemmer, medmindre -Force -knappen bruges.


Her er en prøve bil klasse, der viser en smule af alt.


enum Engine {
    None
    V4
    V8
}

Class Car

{    
    static [int]$numberOfWheels = 4
    [int]$numberOfDoors
    [datetime]$year
    [String]$model
    [Engine]$Engine 

    car() {
    #Constructor ... optional
    }

    car([Engine]$Engine,$numberofDoors = 4 ) {
    #Constructor overload with default value... optional
    $this.Engine = $Engine
    $this.numberOfDoors = $numberofDoors
    }

    drive()
    {
    }

    hidden [int] change\_engine([string] $new\_engine) {
        return 0
    }
}


# Call to static property
[Car]::numberOfWheels

#Create Car object
$MyCar = New-Object Car([Engine]::V4,4)

#Call drive
$MyCar.drive()


Referencer


4syops - PowerShell klasser (serie 4) [3]


Microsoft PowerShell docs: Om klasser [4]


Sapien.com - Skjult søgeord [5]