組み込みメンバーについて
簡単な説明
すべての PowerShell オブジェクトで使用できる PowerShell の固有のメンバーについて説明します。
詳しい説明
オブジェクトが作成されると、PowerShell によって、各オブジェクトに "hidden" プロパティとメソッドが追加されます。 これらのプロパティとメソッドは、 組み込みメンバー と呼ばれます。
通常、これらの組み込みメンバーはビューで非表示になります。 これらのメンバーの一部は、 Get-Member -Force コマンドを使用して表示できます。
オブジェクトビュー
組み込みメンバーには、オブジェクトのビューを表す メンバ セットプロパティのセットが含まれています。 任意の PowerShell オブジェクトに対してコマンドを使用して Get-Member -Force 、メンバーセット のプロパティを見つけることができます。 すべての PowerShell オブジェクトには、次の メンバーメンバー プロパティが含まれています。
psbase
この psbase には、拡張機能も適合もない基本オブジェクトのメンバーが含まれています。
psadapted
Psadapted ビューには、ベースオブジェクトと適合したメンバー (存在する場合) が表示されます。 適合したメンバーは、拡張型システムによって追加されます。
psextended
Psextended ビューには、 Types.ps1xmlファイルと メンバーの追加コマンドレットによって追加されたメンバー のみ が表示されます。 すべてのオブジェクトは、 Add-Member コマンドレットを使用して実行時に拡張できます。
psobject
すべての PowerShell オブジェクトの基本データ型は [PSObject] です。 ただし、オブジェクトが作成されると、PowerShell はインスタンスを使用して [PSObject] オブジェクトをラップします。 Psobject メンバーは、ラッパーインスタンスへの [PSObject] アクセスを許可します。 ラッパーには、オブジェクトに関するメソッド、プロパティ、およびその他の情報が含まれています。 Psobject メンバーの使用は、 Get メンバーを使用した場合と同じですが、ラッパーインスタンスにアクセスするだけなので、いくつかの違いがあります。
型情報
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 ()
および Where() メソッドは、すべての ForEach() PowerShell オブジェクトで使用できます。 ただし、コレクションを使用する場合に最も役立ちます。 これらの方法の使用方法の詳細については、「 about_Arrays」を参照してください。
プロパティ
カウントと長さ
カウント と 長さ のプロパティは、すべての 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」を参照してください。
フィードバック
フィードバックの送信と表示