Condividi tramite


about_Hidden

DESCRIZIONE BREVE

Descrive la parola chiave Hidden, che nasconde i membri della classe dai risultati predefiniti Get-Member.

DESCRIZIONE LUNGA

Quando si usa la parola chiave Hidden in uno script, i membri di una classe vengono nascosti per impostazione predefinita. La parola chiave Hidden può nascondere proprietà, metodi (inclusi costruttori, eventi, proprietà alias e altri tipi di membri, inclusi i membri statici, dai risultati predefiniti del cmdlet Get-Member e dai risultati di completamento di IntelliSense e tabulazione. Per visualizzare i membri nascosti con la parola chiave Hidden, aggiungere il parametro -Force a un comando Get-Member.

I membri nascosti non vengono visualizzati utilizzando il completamento tramite tabulazione o IntelliSense, a meno che il completamento non venga eseguito nella classe che definisce il membro nascosto.

È stato aggiunto un nuovo attributo System.Management.Automation.HiddenAttribute, in modo che il codice C# possa avere la stessa semantica all'interno di PowerShell.

La parola chiave Hidden è utile per la creazione di proprietà e metodi all'interno di una classe che non si desidera necessariamente che altri utenti della classe possano visualizzare o facilmente essere in grado di modificare.

La parola chiave Hidden non ha alcun effetto sul modo in cui è possibile visualizzare o apportare modifiche ai membri di una classe. Analogamente a tutte le parole chiave del linguaggio in PowerShell, Hidden non fa distinzione tra maiuscole e minuscole e i membri nascosti sono ancora pubblici.

Nascosto, insieme alle classi personalizzate, è stato introdotto in PowerShell 5.0.

ESEMPIO

Nell'esempio seguente viene illustrato come usare la parola chiave Hidden in una definizione di classe. Il metodo classe Car, Drive, ha una proprietà, corse, che non è necessario visualizzare o modificare (è semplicemente alto il numero di volte in cui Drive viene chiamato sulla classe Car, una metrica che non è importante per gli utenti della classe; si consideri, ad esempio, che quando si acquista un'auto, non si chiede al venditore il numero di unità che è stata presa.

Poiché non è necessario che gli utenti della classe modifino questa proprietà, è possibile nascondere la proprietà da Get-Member e i risultati di completamento automatico usando la parola chiave Hidden.

Aggiungere la parola chiave Hidden immettendola nella stessa riga dell'istruzione della proprietà e del relativo tipo di dati. Anche se la parola chiave può essere in qualsiasi ordine in questa riga, l'avvio dell'istruzione con la parola chiave Hidden semplifica in seguito l'identificazione di tutti i membri nascosti.

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
}

Creare ora una nuova istanza della classe Car e salvarla in una variabile $TestCar.

$TestCar = [Car]::new()

Dopo aver creato la nuova istanza, inviare tramite pipe il contenuto della variabile $TestCar a Get-Member. Si noti che la proprietà rides non è tra i membri elencati nei risultati del comando Get-Member.

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;}

Provare ora a eseguire di nuovo Get-Member, ma questa volta aggiungere il parametro -Force. Si noti che i risultati contengono la proprietà delle corse nascoste, tra gli altri membri nascosti per impostazione predefinita.

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;}

VEDERE ANCHE

about_Classes

about_Language_Keywords

about_Wildcards

Get-Member