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 mot clé hidden, qui masque les membres de classe des résultats par défaut Get-Member.
Description longue
Lorsque vous utilisez le mot clé hidden 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 la cmdlet Get-Member, IntelliSense ou des résultats de complétion par tabulation. Pour afficher les membres que vous avez masqués avec le mot clé
Le mot clé hidden peut masquer :
- méthodes (y compris les constructeurs)
- événements
- propriétés alias
- autres types de membres (y compris les membres statiques)
Les membres masqués ne sont pas affichés dans la complétion par tabulation ou IntelliSense, à moins que la complétion ne se produise 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 mot clé hidden 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 mot clé hidden 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 n’est pas dépendant de la casse, et les membres masqués restent publics.
Le mot clé hidden, ainsi que les classes personnalisées, a été introduit dans Windows PowerShell 5.0.
Example
L’exemple suivant montre comment utiliser le mot clé hidden 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 cette classe (considérez, par exemple, que lorsque vous achetez une voiture, vous ne demandez pas au vendeur combien de trajets la voiture a faits).
Étant donné qu’il n’est pas nécessaire que les utilisateurs de la classe modifient cette propriété, nous pouvons masquer la propriété de Get-Member et les résultats de saisie semi-automatique à l’aide du mot clé hidden.
Ajoutez le mot clé hidden 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 mot clé hidden 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 variable $TestCar 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 paramètre -Force.
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;}