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.FileInfo
i 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.