Compartilhar via


about_Hidden

Descrição breve

Descreve o hidden palavra-chave, que oculta os membros da classe dos resultados padrãoGet-Member.

Descrição longa

Ao usar o hidden palavra-chave em um script, você oculta os membros de uma classe por padrão. Os membros ocultos não são exibidos nos resultados padrão do Get-Member cmdlet, intelliSense ou resultados de conclusão de tabulação. Para exibir membros que você ocultou com o hidden palavra-chave, adicione o parâmetro Force a um Get-Member comando.

O hidden palavra-chave pode ocultar:

  • métodos (incluindo construtores)
  • events
  • propriedades de alias
  • outros tipos de membro (incluindo membros estáticos)

Os membros ocultos não são exibidos na conclusão da guia ou no IntelliSense, a menos que a conclusão ocorra na classe que define o membro oculto.

O novo atributo, System.Management.Automation.HiddenAttribute, permite que o código C# tenha a mesma semântica no PowerShell.

O hidden palavra-chave é útil para criar propriedades e métodos em uma classe que você não necessariamente deseja que os usuários da classe vejam ou possam editar prontamente.

O hidden palavra-chave não tem efeito sobre como você pode exibir ou fazer alterações nos membros de uma classe. Como todas as palavras-chave de linguagem no PowerShell, hidden não diferencia maiúsculas de minúsculas e os membros ocultos ainda são públicos.

O hidden palavra-chave, juntamente com classes personalizadas, foi introduzido no Windows PowerShell 5.0.

EXEMPLO

O exemplo a seguir mostra como usar o hidden palavra-chave em uma definição de classe. O método da classe Car , Drive, tem uma propriedade, passeios, que não precisa ser visto ou alterado, pois apenas conta o número de vezes que Drive é chamado na classe Car . Essa métrica que não é importante para os usuários da classe (considere, por exemplo, que quando você está comprando um carro, você não pergunta ao vendedor quantas unidades o carro foi levado).

Como há pouca necessidade de os usuários da classe alterarem essa propriedade, podemos ocultar a propriedade e os resultados de Get-Member conclusão automática usando o hidden palavra-chave.

Adicione o hidden palavra-chave inserindo-o na mesma linha de instrução que a propriedade e seu tipo de dados. Embora o palavra-chave possa estar em qualquer ordem nessa linha, iniciar a instrução com o hidden palavra-chave torna mais fácil para você mais tarde identificar todos os membros que você ocultou.

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
}

Agora, crie uma nova instância da classe Car e salve-a em uma variável , $TestCar.

$TestCar = [Car]::new()

Depois de criar a nova instância, redirecione o conteúdo da $TestCar variável para Get-Member. Observe que a propriedade rides não está entre os membros listados nos resultados do Get-Member comando.

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

Agora, tente executar Get-Member novamente, mas desta vez, adicione o -Force parâmetro . Observe que os resultados contêm a propriedade de passeios ocultos , entre outros membros ocultos por padrão.

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

Confira também