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, que oculta os hidden membros da classe dos resultados padrão Get-Member .
Descrição longa
Ao usar a 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 preenchimento de tabulação. Para exibir membros que você ocultou com a hidden palavra-chave, adicione o parâmetro Force a um Get-Member comando.
A hidden palavra-chave pode ocultar:
- métodos (incluindo construtores)
- events
- Propriedades de alias
- Outros tipos de membros (incluindo membros estáticos)
Os membros ocultos não são exibidos na conclusão de tabulação 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 hidden palavra-chave é útil para criar propriedades e métodos dentro de uma classe que você não deseja necessariamente que os usuários da classe vejam ou possam editar prontamente.
A hidden palavra-chave não tem efeito sobre como você pode visualizar ou fazer alterações nos membros de uma classe. Como todas as palavras-chave de idioma no PowerShell, hidden não diferencia maiúsculas de minúsculas e os membros ocultos ainda são públicos.
A hidden palavra-chave, juntamente com as classes personalizadas, foi introduzida no Windows PowerShell 5.0.
Example
O exemplo a seguir mostra como usar a hidden palavra-chave 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 em quantas viagens o carro foi feito).
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 a hidden palavra-chave.
Adicione a hidden palavra-chave 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 nesta linha, iniciar a instrução com a hidden palavra-chave torna mais fácil para você identificar posteriormente 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, canalize 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 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 -Force parâmetro.
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;}