スタティックメンバーの取り扱い

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パラメータをを活用してみてください。

コメント

タイトルとURLをコピーしました