組み込みメンバーについて
簡単な説明
すべての PowerShell オブジェクトで使用できる PowerShell の組み込みメンバーに関する情報を提供します。
詳しい説明
オブジェクトが作成されると、PowerShell によって各オブジェクトにいくつかの "非表示" プロパティとメソッドが追加されます。 これらのプロパティとメソッドは、 組み込みメンバーと呼ばれます。
通常、これらの組み込みメンバーはビューから非表示になります。 これらのメンバーの一部は、 コマンドを Get-Member -Force
使用して確認できます。
オブジェクト ビュー
組み込みメンバーには、オブジェクトのビューを表す MemberSet プロパティのセットが含まれます。 MemberSet プロパティは、任意の PowerShell オブジェクトの コマンドをGet-Member -Force
使用して見つけることができます。 すべての PowerShell オブジェクトには、次の MemberSet プロパティが含まれています。
psbase
この psbase には、拡張または適応のない基本オブジェクトのメンバーが含まれています。
psadapted
psadapted ビューには、基本オブジェクトに加えて、適合されたメンバー (存在する場合) が表示されます。 適合されたメンバーは、拡張型システム (ETS) によって追加されます。
psextended
psextended ビューには、Types.ps1xml ファイルと Add-Member コマンドレットによって追加されたメンバーのみが表示されます。 コマンドレットを使用して、実行時に任意のオブジェクトを Add-Member
拡張できます。
psobject
すべての PowerShell オブジェクトの基本型は です [PSObject]
。 ただし、オブジェクトが作成されると、PowerShell は オブジェクトをインスタンスで [PSObject]
ラップします。 psobject メンバーは、ラッパー インスタンスへのアクセスを[PSObject]
許可します。 ラッパーには、メソッド、プロパティ、およびオブジェクトに関するその他の情報が含まれます。 psobject メンバーの使用は Get-Member の使用と同等ですが、ラッパー インスタンスにのみアクセスするため、いくつかの違いがあります。
型情報
pstypenames
PSTypeNames は、継承順にオブジェクト型階層を一覧表示する CodeProperty メンバーです。 例:
$file = Get-Item C:\temp\test.txt
$file.pstypenames
System.IO.FileInfo
System.IO.FileSystemInfo
System.MarshalByRefObject
System.Object
上に示すように、最も具体的なオブジェクト型 である で始まり、 System.IO.FileInfo
最もジェネリック型の に進みます System.Object
。
メソッド
PowerShell では、すべての PowerShell オブジェクトに 2 つの非表示のメソッドが追加されます。 これらのメソッドは、コマンドまたはタブ補完を Get-Member -Force
使用して表示されません。
ForEach() と Where()
ForEach()
メソッドと Where()
メソッドは、すべての PowerShell オブジェクトで使用できます。 ただし、コレクションを操作する場合に最も便利です。 これらのメソッドの使用方法の詳細については、「 about_Arrays」を参照してください。
プロパティ
Count と Length
Count プロパティと Length プロパティは、すべての PowerShell オブジェクトで使用できます。 これらは互いに似ていますが、データ型によって動作が異なる場合があります。 これらのプロパティの詳細については、「 about_Properties」を参照してください。
配列インデックスのスカラー型
オブジェクトがインデックス付きコレクションでない場合、index 演算子を使用して最初の要素にアクセスすると、オブジェクト自体が返されます。 最初の要素を超えるインデックス値は を返します $null
。
PS> (2)[0]
2
PS> (2)[-1]
2
PS> (2)[1] -eq $null
True
PS> (2)[0,0] -eq $null
True
詳細については、「 about_Operators」を参照してください。
型の New() メソッド
PowerShell 5.0 以降、PowerShell では、すべての .NET 型に静的 New()
メソッドが追加されます。 次の例では、同じ結果が生成されます。
$expression = New-Object -TypeName regex -ArgumentList 'pattern'
$expression = [regex]::new('pattern')
メソッドを使用すると new()
、 を使用 New-Object
するよりもパフォーマンスが向上します。
詳細については、「about_Remote」を参照してください。