-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

那么,DoSOthing 有什么用呢?

有2种可能:

  • 为了在那里调用方法,您知道的不仅仅是“对象”,那么在编写方法时您必须知道这一点。
  • 你不知道,那么你只做在 Object、List 上定义的通用东西,那么你不需要知道类型。
于 2012-12-31T05:54:57.803 回答