タグ

ブックマーク / d.hatena.ne.jp/y_mashiro (1)

  • 引数付きコンストラクタをジェネリックな関数で呼び出す - in the box

    単純に引数なしで呼び出すだけなら public static T Construct<T>() where T : new() { return new T(); } でいいんだけど、引数も一緒に渡す場合に public static T Construct1<T, A>(A arg) where T : new() { return new T(arg); } ってやっちゃうと 'T': 変数型のインターフェイスを作成するときに、引数を指定できません。 怒られた。 new制約で引数付きのコンストラクタまで選べないっぽいのでどうしようもない。 じゃあどうしようかというとReflection使っちゃえば大抵なんとかなる。 こんな感じ。 public static T Construct<T, A>(A arg) { Type type = typeof(T); ConstructorInfo

    indication
    indication 2011/07/13
    引数付きのコンストラクタをファクトリパターンで呼び出す方法
  • 1