c#泛型参数推断

时间:2012-12-31 05:52:40

标签: c# generics arguments

  

可能重复:
  How to use reflection to call generic Method?

我该怎么办?

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都有一个共同的子类。

1 个答案:

答案 0 :(得分:-1)

嗯,那么DoSOmething使用了什么?

有两种可能性:

  • 你知道的不仅仅是“对象”以便在那里调用方法,那么在编写方法时你必须知道。
  • 你不知道,那么你只做在Object,List上定义的泛型的东西,那么你不需要知道它的类型。