about_Hidden
Descrição breve
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 cmdlet, do IntelliSense ou dos resultados de conclusão de Get-Member
tabulação. 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)
- events
- Propriedades do 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 necessariamente deseja 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 linguagem 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 de classe de carro , 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 de carro . 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 sobre 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 nessa linha, iniciar a instrução com a hidden
palavra-chave facilita a identificação posterior de 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 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;}