SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows PowerShell 活用編

Windows PowerShell 活用編(5)
.NET Framework利用の基礎

アセンブリ・ライブラリの読み込みと利用

.NETオブジェクトの利用方法

 ここまでの説明で、アセンブリを読み込む方法について説明しました。

 アセンブリは読み込んだだけでは使用することができないため、ここからはオブジェクトの利用方法について説明します。

 .NETオブジェクトには、インスタンスを作成してから利用するものと、インスタンスを作成しなくても使用できるものとがあります。

.NETオブジェクトのインスタンス作成

 インスタンスを作成してから利用するものは、New-Objectコマンドレットを使用して作成します。構文は下記の通りです。

変数 = New-Object -typename クラス名 [-argumentlist コンストラクタ引数]

 または

変数 = New-Object クラス名(コンストラクタ引数)

 例としてStreamReaderの.NETオブジェクトを作成します(StreamReaderはテキストファイルの読み込みに使用するクラスです)。

$reader = New-Object -typename System.IO.StreamReader -argumentlist "C:\Work\Test1.txt"
$reader = New-Object System.IO.StreamReader("C:\Work\Test1.txt")

 これはVB.NETでは

Dim reader As New System.IO.StreamReader("C:\Work\Test1.txt")

 C#では

System.IO.StreamReader reader = new System.IO.StreamReader(@"C:\Work\Test1.txt");

 と同等です。

 MSDNでStreamReaderクラスの説明を見ると、アセンブリ欄に「mscorlib(mscorlib.dll 内)」との記述があります。これがStreamReaderが含まれるアセンブリとなります。これはPowerShellでデフォルトで読み込まれるアセンブリであり、改めて読み込む必要のないアセンブリです。

インスタンスメソッドとインスタンスプロパティ

 インスタンスの作成方法が分かったところで、インスタンスメソッドとインスタンスプロパティについて説明します。

 インスタンス化して作成したオブジェクトのメソッドを「インスタンスメソッド」、プロパティを「インスタンスプロパティ」と呼びます。

 インスタンスメソッドを使用するには

オブジェクト変数.メソッド(パラメータ)

 とします。オブジェクト変数とメソッドの間にはドット(.)を置きます。

 パラメータを複数指定する場合にはコンマ(,)で区切ります。また、パラメータを使用しない場合でもカッコ()は必要です。

 下記は先ほど作成したStreamReaderオブジェクトのReadLineメソッドを使用する例です(ReadLineメソッドは指定したファイルから1行読み込みます)。

$stream.ReadLine()

 また、インスタンスプロパティを使用するには

オブジェクト変数.プロパティ

 とします。オブジェクト変数とプロパティの間にはドット(.)を置きます。

 下記はStreamReaderオブジェクトのEndOfStreamプロパティを使用する例です(EndOfStreamはストリームの終端に達した場合にtrueとなります)。

$stream.EndOfStream

スタティックメソッドとスタティックプロパティ

 オブジェクトの中にはインスタンスを作成しなくても利用可能な、「スタティックメソッド」、「スタティックプロパティ」があります。 

 Get-Memberコマンドレットでスイッチパラメータの-staticを使用するとスタティックメンバーを知ることができます。

 例としてMathクラスのスタティックメンバーを調べるには

PS> [Math] | Get-Member -static

 とします。

 MemberType列に表示されている文字列(Method/Property)で、メソッドなのかプロパティなのかを知ることができます。

 スタティックメソッドを使用するには

[クラス名]::メソッド名(パラメータ)

 とします。クラス名は各括弧[]で括り、クラス名とパラメータの間はコロンを2つ続けて::を置きます。

 パラメータを複数指定する場合にはコンマ(,)で区切ります。また、パラメータを使用しない場合でもカッコ()は必要です。

 下記はMathクラスのPowメソッドを使用して2の3乗を求める例です

PS> [Math]::Pow(2,3)

 スタティックプロパティを使用するには

[クラス名]::プロパティ名

 とします。クラス名は角括弧[]で括り、クラス名とパラメータの間はコロンを2つ続けて::を置きます。

 下記はMathクラスのPIプロパティにアクセスし円周率を取得します。

PS> [Math]::PI

まとめ

 今回はPowerShellから.NET Frameworkのライブラリを利用する際の基本操作を学びました。

  • アセンブリの読み込み方法
  • 自作ライブラリの読み込み方法
  • インスタンスメソッドとインスタンスプロパティの使用方法
  • スタティックメソッドとスタティックプロパティの使用方法

 は、いずれも.NET Frameworkライブラリを利用していく上での重要項目です。

 .NET Frameworkの巨大なライブラリを利用すると、コマンドレットだけでは実現できない細やかな処理が可能となりますので、ぜひ身につけていただければと思います。

参考文献

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Windows PowerShell 活用編連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3572 2009/03/02 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー