ジェネリック: Java vs C# その2
NyaRuRuさんから、C#の場合new制約を明示することでこんな書き方ができるという事をコメント頂いた。(自分で書いたライブラリィ中に同様の記述をしたことがあるのにすっかり失念していた)
static T GetInstance() where T :new() { return new T(); }
クラス宣言内のすべての型引数にパブリックなパラメータなしのコンストラクタが必要であることを制約として科すわけだが、おかげで非常にすっきりした記述になる。
new 制約 (C# リファレンス)/C# プログラマーズ リファレンス
new T()とActivator.CreateInstance