childClass c#的通用实例化

时间:2017-10-06 10:16:31

标签: c# generics casting

我想创建一个类型的对象,该对象派生自泛型方法中的另一种类型。

我尝试了什么:

B20

T类型的对象可以是AbstractBaseClass或AbstractClassDerievedFromBaseClass的派生对象。

问题是:如何实例化DerivedType的对象。

我已经尝试检查类型是否正确:

public static T Param<T>(this SomeClass foo) 
   where T : AbstractBaseClass, new() 
{       
   AbstractClassDerivedFromBaseClass bar =(AbstractClassDerivedFromBaseClass) new T();
   return (T) bar;
}

但我也得到了编译错误:

  

无法将类型'T'转换为AbstractClassDerivedFromBaseClass

任何帮助都将不胜感激。

0 个答案:

没有答案