-1

重複の可能性:
リフレクションを使用してジェネリックメソッドを呼び出す方法は?

どうすれば次のことができますか?

class A {}

void DoSomething<T, U> where T : List<U> {}

object o = new List<A>();

DoSomething(o); // cannot be inferred from usage error

実行時までAの正確なタイプはわかりません。

明確にするために。DoSomethingメソッドを変更するためのアクセス権がありません。私は次の呼び出しが機能することを知っています

DoSomething(o as List<A>);

しかし、私は実行時までAを知りません。私はすべてのAsが共通のサブクラスを持つことを知っていますが。

4

1 に答える 1

-1

では、DoSOmething はどのような用途に使用されるのでしょうか。

2 つの可能性があります。

  • そこでメソッドを呼び出すには「オブジェクト」以上のことを知っているので、メソッドを記述するときにそれを知っておく必要があります。
  • わからない場合は、オブジェクト、リストで定義されている一般的なことのみを行い、タイプを知る必要はありません。
于 2012-12-31T05:54:57.803 に答える