


Windows Power Shellですが、とにかく.NET Frameworkのクラスが普通に使えるのが凄い。
今回は、クラスが備えている「静的」なメソッドについての記事です。
クラスは、オブジェクトに変換する(インスタンス化する)事によって利用が可能になりますけれど、インスタンス化前のクラスそのものが備える便利なメソッドがあります。
たとえば、うるう年の判定です。
ためしに、IsURU()というプログラムを作ってみました。
自作プログラムだと、「うるう年は、4で割り切れるが100では割り切れない。もしくは、4でも100でも400でも割り切れる年の事である」というコードを書かなければならないのですが、[DateTime]クラスが備えるIsLeapYear()メソッドを使うと一発で判定出来てしまいます。
静的メソッドは、オブジェクトのメソッドやプロパティとは呼び出し方が異なります。
[クラス]::静的メソッド()
という形になります。2009年のうるう年判定であれば、[DateTime].IsLeapYear(2009);ではなくて、[DateTime]::IsLeapYear(2009);と書きます。「::」がポイントです。
変数の値が型に適合するのかどうか、を判定する::TryParse()メソッドも各型のクラスに用意されていますし、自作プログラムの量をぐぐっと減らせる可能性があるので、色々と知っておかなければならないなぁ・・・と。
特に、コマンドシェルからコマンドを叩いてすぐに結果を画面に出す・・・という使い方が出来るWindows Power Shellだけに、手早く結果が分かる方法は沢山覚えておきたいところですね。