Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Brève description
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.
Example
L’exemple suivant montre comment utiliser le hidden mot clé dans une définition de classe. La méthode de classe Car, Drive, a une propriété, Rides, qui n’a pas besoin d’être vue ou modifiée, car il n’est que le nombre de fois où 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 commande 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;}
À 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é Rides masquée, 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;}