PowerShellはもともと厳密な型指定を要求されるわけではないのでジェネリックなクラスが必要になることはあまり無いように思う。
しかし、最近ではジェネリックなクラスでしか提供されない機能もある。
そこで、簡単にその使い方を調べてみた。
ジェネリックの代表格「List」の使い方はこんな感じのようだ。
001 002 003 004 005 006 007 008 009 | $genericList = 'System.Collections.Generic.List`1[System.String]' $list = New-Object $genericList $list2 = New-Object $genericList $list.Add("test1") $list.Add("test2") $list2.Add("test0") $list2.AddRange($list) $list2 |
Listのクラス名に続けて型パラメータの型を指定してあげる。
指定は文字列になるようだ。
(`1)は型パラメータの個数を指定しているものと思われる。
型パラメータが2個の場合は、xxxxx`2[System.String,System.String]
といった形だろうか。
ただし、このパターンで簡単に使えるのはmscorlibのジェネリッククラスだけで、それ以外はちょっと面倒臭そう。
一応以下にサンプルが載っていたので使えるには使えたが、余程のことが無い限り使うことは無い気がする。
.net - Powershell Generic Collections - Stack Overflow
また、PowerShellクックブックにジェネリックなクラスを使うための関数が載っているのでいざというときは参考にすると良いかも。
Creating Generic Types in PowerShell | Precision Computing
V3を眺めているとジェネリックというキーワードもちらほら見えるのでV3では簡単に使えるようになるのだろうか・・・。
もう少し簡単に以下のようにインスタンシングできるようだ。
>$list = New-Object System.Collections.Generic.List[string] |
0 件のコメント:
コメントを投稿