Partager via


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

Voir aussi