public List<Hoge> GetHogeList()
{
return new List<Hoge>();
}
コード分析的にはこのコードは駄目らしい。「CA1002 ジェネリック リストを公開しません」だ。原文は「Do
not expose generic lists 」なので、「ジェネリックリストを公開するな(公開しないでください)」がスッキリな訳だと思うが。
List<T> をパブリックに使うのは駄目で、あくまでプライベートに使いなさいという事かな。だったら ArrayList で十分だ。プライベートに使っている間は
ArrayList に何が入っているのか完全に把握しているから、「厳密に型指定できるんだよ!」というのは List<T> を使用する動機としては弱い。
「パフォーマンスが違うんだよ!」というのも何か弱い。それでも ArrayList よりは List<T> のほうがマシと言えばマシだが。
いちいちコレクションクラスを作る面倒が大幅に削減できると思ったのだが、勘違いか?
public class HogeCollection : List<Hoge> { };
List<T> の唯一の有効な使い方はこれしかない?確かにコレクションクラスを作るのが非常に楽になった。