Compartilhar via


Sobre membros intrínsecos

Descrição breve

Fornece informações sobre os membros intrínsecos do PowerShell que estão disponíveis para todos os objetos do PowerShell.

Descrição detalhada

Quando os objetos são criados, o PowerShell adiciona algumas propriedades e métodos "ocultos" a cada objeto. Essas propriedades e métodos são conhecidos como membros intrínsecos. Esses membros intrínsecos normalmente ficam ocultos da exibição. Alguns desses membros podem ser vistos usando o Get-Member -Force comando .

Exibições de objeto

Os membros intrínsecos incluem um conjunto de propriedades MemberSet que representam uma exibição do objeto. Você pode encontrar as propriedades MemberSet usando o Get-Member -Force comando em qualquer objeto do PowerShell. Cada objeto do PowerShell inclui as seguintes propriedades MemberSet .

psbase

Esse psbase contém os membros do objeto base sem extensão ou adaptação.

psadapted

A exibição psadapted mostra o objeto base mais os membros adaptados, se presentes. Os membros adaptados são adicionados pelo ETS (Sistema de Tipo Estendido).

psextended

A exibição psextended mostra apenas os membros adicionados pelos arquivos Types.ps1xml e o cmdlet Add-Member . Qualquer objeto pode ser estendido em runtime usando o Add-Member cmdlet .

Psobject

O tipo base de todos os objetos do PowerShell é [PSObject]. No entanto, quando um objeto é criado, o PowerShell também encapsula o objeto com uma [PSObject] instância. O membro psobject permite o acesso à instância do [PSObject] wrapper. O wrapper inclui métodos, propriedades e outras informações sobre o objeto. O uso do membro psobject é comparável ao uso de Get-Member, mas há algumas diferenças, pois ele está acessando apenas a instância do wrapper.

Informações de tipo

pstypenames

PSTypeNames é um membro do CodeProperty que lista a hierarquia de tipo de objeto na ordem da herança. Por exemplo:

$file = Get-Item C:\temp\test.txt
$file.pstypenames
System.IO.FileInfo
System.IO.FileSystemInfo
System.MarshalByRefObject
System.Object

Conforme mostrado acima, ele começa com o tipo de objeto mais específico, System.IO.FileInfoe continua até o tipo mais genérico, System.Object.

Métodos

O PowerShell adiciona dois métodos ocultos a todos os objetos do PowerShell. Esses métodos não são visíveis usando o comando ou a Get-Member -Force conclusão da guia.

ForEach() e Where()

Os ForEach() métodos e Where() estão disponíveis para todos os objetos do PowerShell. No entanto, eles são mais úteis ao trabalhar com coleções. Para obter mais informações sobre como usar esses métodos, consulte about_Arrays.

Propriedades

Contagem e Comprimento

As propriedades Count e Length estão disponíveis para todos os objetos do PowerShell. Elas são semelhantes umas às outras, mas podem funcionar de forma diferente dependendo do tipo de dados. Para obter mais informações sobre essas propriedades, consulte about_Properties.

Tipos escalares de indexação de matriz

Quando um objeto não é uma coleção indexada, usar o operador index para acessar o primeiro elemento retorna o próprio objeto. Os valores de índice além do primeiro elemento retornam $null.

PS> (2)[0]
2
PS> (2)[-1]
2
PS> (2)[1] -eq $null
True
PS> (2)[0,0] -eq $null
True

Para obter mais informações, consulte about_Operators.

Método New() para tipos

A partir do PowerShell 5.0, o PowerShell adiciona um método estático New() para todos os tipos .NET. Os exemplos a seguir produzem o mesmo resultado.

$expression = New-Object -TypeName regex -ArgumentList 'pattern'
$expression = [regex]::new('pattern')

Usar o new() método tem um desempenho melhor do que usar New-Object.

Para saber mais, confira about_Classes.