PowerShellでスタティックなメンバーを取り扱うにはコロンを2つ続けて::と記述します。
スタティックなメンバーとは何か?
これは、オブジェクトのインスタンスを作成しなくても呼び出しが可能なプロパティやメソッドのことです。
Get-Memberコマンドレットを使用するとスタティックなプロパティとメソッドを使用することが可能です。
このとき、パラメータとして-staticを使用します。
では、一例としてGet-Memberを使用して、[Text.Encodin]のスタティックプロパティ/メソッドを調べてみましょう。
PS > [Text.Encoding] | Get-member -static
TypeName: System.Text.Encoding
Name MemberType Definition
---- ---------- ----------
Convert Method static System.Byte[] Convert(Encoding srcEncoding, Encoding ...
Equals Method static System.Boolean Equals(Object objA, Object objB)
GetEncoding Method static System.Text.Encoding GetEncoding(Int32 codepage), ...
GetEncodings Method static System.Text.EncodingInfo[] GetEncodings()
get_ASCII Method static System.Text.Encoding get_ASCII()
get_BigEndianUnicode Method static System.Text.Encoding get_BigEndianUnicode()
get_Default Method static System.Text.Encoding get_Default()
get_Unicode Method static System.Text.Encoding get_Unicode()
get_UTF32 Method static System.Text.Encoding get_UTF32()
get_UTF7 Method static System.Text.Encoding get_UTF7()
get_UTF8 Method static System.Text.Encoding get_UTF8()
ReferenceEquals Method static System.Boolean ReferenceEquals(Object objA, Object objB)
ASCII Property static System.Text.Encoding ASCII {get;}
BigEndianUnicode Property static System.Text.Encoding BigEndianUnicode {get;}
Default Property static System.Text.Encoding Default {get;}
Unicode Property static System.Text.Encoding Unicode {get;}
UTF32 Property static System.Text.Encoding UTF32 {get;}
UTF7 Property static System.Text.Encoding UTF7 {get;}
UTF8 Property static System.Text.Encoding UTF8 {get;}
エンコーディングとしてShift-Jisを取得する場合は GetEncodingメソッドを使用します。
この場合は下記のように記述します。
$enc = [Text.Encoding]::GetEncoding("Shift-Jis")
スタティックなメンバーを使用したい場合は::を使用、調査するときはGet-Memberコマンドレットと-staticパラメータをを活用してみてください。

コメント