Partager via


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

VOIR AUSSI

À propos des classes

about_Language_Keywords

about_Wildcards

Get-Member