about_Hidden
Description courte
Décrit le hidden
mot clé, qui masque les membres de classe des résultats par défaut Get-Member
.
Description longue
Lorsque vous utilisez le hidden
mot clé dans un script, vous masquez les membres d’une classe par défaut. Les membres masqués ne s’affichent pas dans les résultats par défaut de l’applet Get-Member
de commande, IntelliSense ou des résultats de saisie semi-automatique par onglet. Pour afficher les membres que vous avez masqués avec le hidden
mot clé, ajoutez le paramètre Force à une Get-Member
commande.
Le hidden
mot clé peut masquer :
- méthodes (y compris les constructeurs)
- événements
- propriétés d’alias
- autres types de membres (y compris les membres statiques)
Les membres masqués ne sont pas affichés dans l’achèvement de tabulation ou IntelliSense, sauf si la saisie semi-automatique se produit dans la classe qui définit le membre masqué.
Le nouvel attribut, System.Management.Automation.HiddenAttribute, permet au code C# d’avoir la même sémantique dans PowerShell.
Le hidden
mot clé est utile pour créer des propriétés et des méthodes au sein d’une classe que vous ne souhaitez pas nécessairement que les utilisateurs de la classe puissent voir ou facilement modifier.
Le hidden
mot clé n’a aucun effet sur la façon dont vous pouvez afficher ou apporter des modifications aux membres d’une classe. Comme tous les mots clés de langage dans PowerShell, hidden
ne respecte pas la casse et les membres masqués sont toujours publics.
Le hidden
mot clé, ainsi que les classes personnalisées, a été introduit dans Windows PowerShell 5.0.
EXEMPLE
L’exemple suivant montre comment utiliser le hidden
mot clé dans une définition de classe. La méthode de la classe Voiture , Drive, a une propriété, des courses, qui n’a pas besoin d’être vue ou modifiée, car il est simplement élevé le nombre de fois que Drive est appelé sur la classe Voiture . Cette métrique qui n’est pas importante pour les utilisateurs de la classe (considérez, par exemple, que lorsque vous achetez une voiture, vous ne demandez pas au vendeur combien de lecteurs la voiture a été prise).
Étant donné qu’il n’est pas nécessaire pour les utilisateurs de la classe de modifier cette propriété, nous pouvons masquer la propriété des résultats de Get-Member
saisie semi-automatique et automatique à l’aide du hidden
mot clé.
Ajoutez le hidden
mot clé en le entrant sur la même ligne d’instruction que la propriété et son type de données. Bien que le mot clé puisse être dans n’importe quel ordre sur cette ligne, le démarrage de l’instruction avec le hidden
mot clé facilite l’identification ultérieure de tous les membres que vous avez masqués.
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
}
À présent, créez une instance de la classe Car et enregistrez-la dans une variable. $TestCar
$TestCar = [Car]::new()
Après avoir créé la nouvelle instance, dirigez le contenu de la $TestCar
variable vers Get-Member
. Notez que la propriété rides n’est pas parmi les membres répertoriés dans les résultats de la Get-Member
commande.
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;}
À présent, réessayez d’exécuter Get-Member
, mais cette fois, ajoutez le -Force
paramètre.
Notez que les résultats contiennent la propriété de courses masquées, entre autres membres masqués par défaut.
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;}