PowerShell from Japan!! - ここが日本のPowerShell情報発信基地
立ち上げたのは HIRO's .NET の HIRO さんです。
このサイトは、複数の Author がブログ形式で PowerShell の情報を発信するサイトで、今後、日本の PoSHer (PowerShell 好きな人々) に欠かせないサイトになると予想されます。
ちなみに、僕も Author として参加しています。
「PowerShell from Japan!!」では、Author 募集中です。
PowerShell の情報を発信したいという方、是非 Author として参加してみてください。
参加をご希望の方はこちらのフォームからその旨ご連絡お願いします。
# フォームから送信した内容は HIRO さんの元へ届きます。
代わりに IEnumerable<T>、IList<T>、ICollection<T>、Collection<T> のいずれかを使う。
[ 理由 1 ]
List<T> はパフォーマンス向上のために使用するコレクションで、継承は想定されていない。一方、Collection<T> は、継承して独自のコレクションを定義することが可能な (想定されている) コレクション。
このため、外部に公開するプロパティや外部に公開するメソッドの戻り値・パラメータで List<T> を使用することは推奨されていない。
僕は 「List<T> は多態性を持てないから」 と勝手に解釈している。
[ 理由 2 ]
Collection<T> は、IList<T> を受け取るバージョンのコンストラクタを使用することで、コレクションのラッパーとして機能させることができる。すると、Collection<T> 型のフィールドには、仮想プロキシによるレイジーロードなど、別のコレクションを注入することができる。
# List<T> では、IEnumerable<T> を受け取るコンストラクタがあるが、これはコンストラクタ内で要素のコピーを行っており、ラッパーとしては働かない。
[ 注意点 ]
ひとつ気をつけなければならない点として、List<T> は独自の機能を豊富に提供していることが挙げられる。例えば Collection<T> のインスタンスで List<T> の機能を使いたい時は、List<T> に変換する (IEnumerable<T> を受け取るコンストラクタを使う) などしなければならない。
# CodeZine では、一定期間を過ぎた記事の一部が、会員でないと閲覧できなくなりますので注意してください。
# 会員登録はこちらから無料で行えます。
Windows PowerShell 入門(1)-基本操作編:CodeZine
Windows PowerShell 入門(2)-基本操作編 2:CodeZine
Windows PowerShell 入門(3)-スクリプト編:CodeZine
Windows PowerShell 入門(4)-変数と演算子:CodeZine
Windows PowerShell 入門(5)-制御構文:CodeZine
Windows PowerShell 入門(6)-関数編1:CodeZine
Windows PowerShell 入門(7)-関数編2:CodeZine
で、本日掲載された第7回目の記事で、当ブログのプロファイル活用という記事を紹介して頂きました。
このテクニックは僕自身気に入ってまして、是非多くの方に知ってもらいたいと思っていました。HIRO さん、ありがとうございます m( _ _ )m
ところで、これまたご存知の方も多いかと思いますが、HIRO さんのサイトとブログでは、PowerShell の Tips がたくさん紹介されています。
PowerShell に興味のある方、CodeZine の連載と併せてチェックしておいた方がいいと思いますよ (^ω^ )