about_Hidden
DESCRIPTION COURTE
Décrit le mot clé masqué, qui masque les membres de la classe des résultats par défaut Get-Member.
DESCRIPTION DÉTAILLÉE
Lorsque vous utilisez le mot clé masqué dans un script, vous masquez les membres d’une classe par défaut. Le mot clé masqué peut masquer les propriétés, les méthodes (notamment les constructeurs, les événements, les propriétés d’alias et d’autres types de membres, y compris les membres statiques) des résultats par défaut de l’applet de commande Get-Member et des résultats d’exécution IntelliSense et tabulation. Pour afficher les membres que vous avez masqués avec la mot clé masquée, ajoutez le paramètre -Force à une commande Get-Member.
Les membres masqués ne s’affichent pas à l’aide de la saisie semi-automatique de tabulation ou d’IntelliSense, sauf si l’achèvement se produit dans la classe qui définit le membre masqué.
Un nouvel attribut, System.Management.Automation.HiddenAttribute, a été ajouté, afin que le code C# puisse avoir la même sémantique dans PowerShell.
Le mot clé masqué 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 autres utilisateurs de la classe voient ou que vous puissiez facilement modifier.
Le mot clé masqué 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 langue dans PowerShell, Hidden ne respecte pas la casse et les membres masqués sont toujours publics.
Les classes masquées, ainsi que les classes personnalisées, ont été introduites dans PowerShell 5.0.
EXEMPLE
L’exemple suivant montre comment utiliser le mot clé masqué dans une définition de classe. La méthode de la classe Voiture, Drive, a une propriété, rides, qui n’a pas besoin d’être consultée ou modifiée (elle ne fait que vérifier le nombre de fois où Drive est appelé sur la classe Car, une 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é effectuée.
Étant donné que les utilisateurs de la classe ont peu besoin de modifier cette propriété, nous pouvons masquer la propriété des résultats de Get-Member et de saisie semi-automatique à l’aide de la mot clé masquée.
Ajoutez le mot clé masqué en l’entrant sur la même ligne d’instruction que la propriété et son type de données. Bien que le mot clé puisse se trouver dans n’importe quel ordre sur cette ligne, le fait de commencer l’instruction avec l’mot clé masqué vous permet d’identifier plus facilement 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
}
Maintenant, créez un instance de la classe Car et enregistrez-le dans une variable, $TestCar.
$TestCar = [Car]::new()
Après avoir créé le nouveau instance, dirigez le contenu de la variable $TestCar vers Get-Member. Notez que la propriété rides ne figure 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;}
Maintenant, essayez d’exécuter Get-Member à nouveau, mais cette fois, ajoutez le paramètre -Force. Notez que les résultats contiennent la propriété rides masquées, parmi d’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;}