Dela via


about_Hidden

KORT BESKRIVNING

Beskriver nyckelordet Dold, som döljer klassmedlemmar från standardresultatet Get-Member.

LÅNG BESKRIVNING

När du använder nyckelordet Dold i ett skript döljer du medlemmarna i en klass som standard. Nyckelordet Dold kan dölja egenskaper, metoder (inklusive konstruktorer, händelser, aliasegenskaper och andra medlemstyper, inklusive statiska medlemmar, från standardresultatet för cmdleten Get-Member och från IntelliSense- och tabbifyllningsresultat. Om du vill visa medlemmar som du har dolt med nyckelordet Hidden lägger du till parametern -Force i ett Get-Member kommando.

Dolda medlemmar visas inte med hjälp av tabbifyllning eller IntelliSense, såvida inte slutförandet sker i klassen som definierar den dolda medlemmen.

Ett nytt attribut, System.Management.Automation.HiddenAttribute, har lagts till, så att C#-koden kan ha samma semantik i PowerShell.

Det dolda nyckelordet är användbart för att skapa egenskaper och metoder i en klass som du inte nödvändigtvis vill att andra användare av klassen ska se eller enkelt kunna redigera.

Nyckelordet Dold har ingen effekt på hur du kan visa eller göra ändringar i medlemmar i en klass. Precis som alla språknyckelord i PowerShell är Hidden inte skiftlägeskänsligt och dolda medlemmar är fortfarande offentliga.

Dolda, tillsammans med anpassade klasser, introducerades i PowerShell 5.0.

EXEMPEL

I följande exempel visas hur du använder nyckelordet Dold i en klassdefinition. Bilklassmetoden, Drive, har en fastighet, åkattraktioner, som inte behöver ses eller ändras (den räknar bara antalet gånger som Drive anropas på bilklassen, ett mått som inte är viktigt för klassens användare; tänk till exempel på att när du köper en bil frågar du inte säljaren om hur många enheter bilen har tagits.

Eftersom det inte finns mycket behov för användare av klassen att ändra den här egenskapen kan vi dölja egenskapen från Get-Member och automatiska slutföranderesultat med hjälp av nyckelordet Dold.

Lägg till nyckelordet Dold genom att ange det på samma instruktionsrad som egenskapen och dess datatyp. Även om nyckelordet kan vara i valfri ordning på den här raden, blir det enklare för dig att identifiera alla medlemmar som du har dolt om du startar -instruktionen med nyckelordet Dold.

class Car
{
   # Properties
   [String] $Color
   [String] $ModelYear
   [int] $Distance

   # Method
   [int] Drive ([int]$miles)
   {
      $this.Distance += $miles
      $this.rides++
      return $this.Distance
   }

   # Hidden property of the Drive method
    hidden [int] $rides = 0
}

Skapa nu en ny instans av klassen Car och spara den i en variabel, $TestCar.

$TestCar = [Car]::new()

När du har skapat den nya instansen skickar du innehållet i variabeln $TestCar till Get-Member. Observera att egenskapen rides inte finns bland de medlemmar som anges i Get-Member kommandoresultat.

PS C:\Windows\system32> $TestCar | Get-Member

   TypeName: Car

Name        MemberType Definition
----        ---------- ----------
Drive       Method     int Drive(int miles)
Equals      Method     bool Equals(System.Object obj)
GetHashCode Method     int GetHashCode()
GetType     Method     type GetType()
ToString    Method     string ToString()
Color       Property   string Color {get;set;}
Distance    Property   int Distance {get;set;}
ModelYear   Property   string ModelYear {get;set;}

Försök nu att köra Get-Member igen, men lägg till parametern -Force den här gången. Observera att resultatet innehåller egenskapen hidden rides, bland andra medlemmar som är dolda som standard.

PS C:\Windows\system32> $TestCar | Get-Member -Force

   TypeName: Car

Name          MemberType   Definition
----          ----------   ----------
pstypenames   CodeProperty System.Collections.ObjectModel.Collection`1
psadapted     MemberSet    psadapted {Color, ModelYear, Distance,
psbase        MemberSet    psbase {Color, ModelYear, Distance,...
psextended    MemberSet    psextended {}
psobject      MemberSet    psobject {BaseObject, Members,...
Drive         Method       int Drive(int miles)
Equals        Method       bool Equals(System.Object obj)
GetHashCode   Method       int GetHashCode()
GetType       Method       type GetType()
get_Color     Method       string get_Color()
get_Distance  Method       int get_Distance()
get_ModelYear Method       string get_ModelYear()
get_rides     Method       int get_rides()
set_Color     Method       void set_Color(string )
set_Distance  Method       void set_Distance(int )
set_ModelYear Method       void set_ModelYear(string )
set_rides     Method       void set_rides(int )
ToString      Method       string ToString()
Color         Property     string Color {get;set;}
Distance      Property     int Distance {get;set;}
ModelYear     Property     string ModelYear {get;set;}
rides         Property     int rides {get;set;}

SE ÄVEN

about_Classes

about_Language_Keywords

about_Wildcards

Get-Member