PowerShell の便利さをしって最近よく使っていますが、static なメンバにアクセスする方法がわからなかったので、メモを記載します。

動作確認環境は PowerShell 1.0 です。

1. スタティックメンバ、 スタティックプロパティにアクセスする

.NET Framework のstatic なメンバにアクセスするには型リテラルを使用します。System.Mathクラスの数学メソッドを使用する場合は、::演算子を使用して[System.Math]::Abs(-1) のように記述します。static メンバの呼び出しサンプルを記載します。[math] は PowerShell のSystem.Mathの型エイリアスです。

PS C:\> [System.Math]::PI
3.14159265358979
PS C:\> [System.Math]::Abs(-1)
1
PS C:\> [math]::Max(@(1,2,3,4,5))
PS C:\> [math]::Max(1,2)
2

スタティックなメンバの一覧は Get-Member コマンドレットで取得できます。下記サンプルは出力結果です。一部省略しています。

PS C:\> [math] | get-member -static


   TypeName: System.Math

Name            MemberType Definition
----            ---------- ----------
Abs             Method     static System.SByte Abs(SByte value)
Acos            Method     static System.Double Acos(Double d)
Asin            Method     static System.Double Asin(Double d)
Atan            Method     static System.Double Atan(Double d)

2. まとめ

説明は以上です。間違い、指摘点などがあればご指摘ください。