about_Hidden
Breve descrição
Descreve a palavra-chave, que oculta os hidden
membros da classe dos resultados padrão Get-Member
.
Descrição longa
Quando você usa 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 conclusão de guia. Para exibir membros ocultos 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)
- eventos
- Propriedades de alias
- outros tipos de membros (incluindo membros estáticos)
Os membros ocultos não são exibidos no preenchimento de guias 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 exibir 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 classes personalizadas, foi introduzida no Windows PowerShell 5.0.
EXEMPLO
O exemplo a seguir mostra como usar a 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 contabiliza o número de vezes que Drive é chamado na classe Car . Aquela métrica que não é importante para os utilizadores da classe (considere, por exemplo, que quando está a comprar um carro, não pergunta ao vendedor em quantas viagens 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 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 mais tarde 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 $TestCar
conteúdo da 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 hidden rides , entre outros membros que estão 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;}