如何在运行时使用泛型类型T从其非泛型接口中转换它

时间:2017-04-10 17:04:33

标签: c# generics types casting

我有一个班级

 class Bar<T>:Foo
 {

   // implements Foo's method
   public Type typeOfGeneric
   {
       get
       {
           return T.class;
       }
   }

 }

在其他地方,我需要这样做:

 var test = tmp as Foo;
 var baseObject = (Bar<tmp.typeOfGeneric>)tmp;

我知道这看起来很奇怪,但我只是想知道是否可以将某些内容转换为通用T,而不是在运行时知道T并在运行时获得该值。

Foo没有类型T,Bar有类型,我需要Foo返回Bar类型T才能使用自己的方法。

例如,我不能在Foo中添加它

Bar<T> getCastType{get;}

因为T不知道Foo接口。

0 个答案:

没有答案