Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Descrição curta
Descreve a palavra-chave hidden, que oculta os membros da classe dos resultados padrão de Get-Member.
Descrição longa
Ao usar a palavra-chave hidden 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 cmdlet Get-Member, intelliSense ou resultados de conclusão da guia. Para exibir membros ocultos com a palavra-chave hidden, adicione o parâmetro Force a um comando Get-Member.
A palavra-chave hidden pode ocultar:
- métodos (incluindo construtores)
- Eventos
- propriedades do 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.
A palavra-chave hidden é útil para criar propriedades e métodos em uma classe que você não deseja necessariamente que os usuários da classe vejam ou possam editar prontamente.
A palavra-chave hidden não tem efeito sobre como você pode exibir ou fazer alterações em 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.
A palavra-chave hidden, juntamente com classes personalizadas, foi introduzida no Windows PowerShell 5.0.
Example
O exemplo a seguir mostra como usar a palavra-chave hidden em uma definição de classe. O método de classe Car, Drive, tem uma propriedade, Rides, que não precisa ser visualizada ou alterada, 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 vezes o carro foi dirigido).
Como há pouca necessidade de os usuários da classe alterarem essa propriedade, podemos ocultar a propriedade de Get-Member e resultados de conclusão automática usando a palavra-chave hidden.
Adicione a palavra-chave hidden inserindo-a na mesma linha de instrução que a propriedade e seu tipo de dados. Embora a palavra-chave possa estar em qualquer ordem nessa linha, iniciar a instrução com a palavra-chave hidden torna mais fácil para você identificar mais tarde todos os membros que você escondeu.
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 variável $TestCar para Get-Member. Observe que a propriedade Rides não está entre os membros listados nos resultados do comando 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;}
Agora, tente executar Get-Member novamente, mas desta vez, adicione o parâmetro -Force.
Observe que os resultados contêm a propriedade Rides oculta, 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;}