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