Informacje o elementach wewnętrznych

Krótki opis

Zawiera informacje o elementach wewnętrznych programu PowerShell, które są dostępne dla wszystkich obiektów programu PowerShell.

Szczegółowy opis

Po utworzeniu obiektów program PowerShell dodaje kilka "ukrytych" właściwości i metod do każdego obiektu. Te właściwości i metody są nazywane elementami wewnętrznymi. Te wewnętrzne elementy członkowskie są zwykle ukryte przed widokiem. Niektóre z tych elementów członkowskich można zobaczyć za pomocą Get-Member -Force polecenia .

Widoki obiektów

Wewnętrzne elementy członkowskie obejmują zestaw właściwości MemberSet , które reprezentują widok obiektu. Właściwości zestawu elementów członkowskich można znaleźć przy użyciu Get-Member -Force polecenia w dowolnym obiekcie programu PowerShell. Każdy obiekt programu PowerShell zawiera następujące właściwości elementu MemberSet .

psbase

Ta baza danych psbase zawiera elementy członkowskie obiektu podstawowego bez rozszerzenia lub adaptacji.

psadapted

Widok psadapted pokazuje obiekt podstawowy oraz dostosowane elementy członkowskie, jeśli są obecne. Dostosowane elementy członkowskie są dodawane przez system rozszerzonego typu (ETS).

psextended

Widok psextended pokazuje tylko elementy członkowskie dodane przez pliki Types.ps1xml i polecenie cmdlet Add-Member . Dowolny obiekt można rozszerzyć w czasie wykonywania przy użyciu Add-Member polecenia cmdlet .

psobject

Podstawowym typem wszystkich obiektów programu PowerShell jest [PSObject]. Jednak po utworzeniu obiektu program PowerShell również opakowuje obiekt wystąpieniem [PSObject] . Element członkowski psobject umożliwia dostęp do [PSObject] wystąpienia otoki. Otoka zawiera metody, właściwości i inne informacje o obiekcie. Użycie elementu członkowskiego psobject jest porównywalne z użyciem metody Get-Member, ale istnieją pewne różnice, ponieważ uzyskuje on dostęp tylko do wystąpienia otoki.

Informacje o typie

pstypenames

PSTypeNames to element członkowski CodeProperty , który wyświetla listę hierarchii typów obiektów w kolejności dziedziczenia. Na przykład:

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

Jak pokazano powyżej, rozpoczyna się od najbardziej określonego typu obiektu , System.IO.FileInfoi kontynuuje do najbardziej ogólnego typu . System.Object

Metody

Program PowerShell dodaje dwie ukryte metody do wszystkich obiektów programu PowerShell. Te metody nie są widoczne przy użyciu polecenia lub ukończenia Get-Member -Force karty.

ForEach() i Where()

Metody ForEach() i Where() są dostępne dla wszystkich obiektów programu PowerShell. Jednak są one najbardziej przydatne podczas pracy z kolekcjami. Aby uzyskać więcej informacji na temat używania tych metod, zobacz about_Arrays.

Właściwości

Liczba i długość

Właściwości Count (Liczba ) i Length (Długość ) są dostępne dla wszystkich obiektów programu PowerShell. Są one podobne do siebie, ale mogą działać inaczej w zależności od typu danych. Aby uzyskać więcej informacji na temat tych właściwości, zobacz about_Properties.

Typy skalarne indeksowania tablic

Jeśli obiekt nie jest indeksowaną kolekcją, użycie operatora indeksu w celu uzyskania dostępu do pierwszego elementu zwraca sam obiekt. Wartości indeksu wykraczające poza pierwszy element zwracają wartość $null.

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

Aby uzyskać więcej informacji, zobacz about_Operators.

Metoda New() dla typów

Począwszy od programu PowerShell 5.0, program PowerShell dodaje metodę statyczną New() dla wszystkich typów platformy .NET. W poniższych przykładach przedstawiono ten sam wynik.

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

new() Użycie metody działa lepiej niż przy użyciu metody New-Object.

Aby uzyskać więcej informacji, zobacz about_Classes.