如何创建T为this.GetType的泛型集合
比如如下代码,应该怎么创建这个list才对呢
class a(){
public Create(){
var lst = new List<this.GetType()>(); //编译错误
}
}
class b() : a{}
foo(){
var f=new b(); b.Create();
}
------解决方案--------------------还是那句话,泛型本质上是设计时的概念,也就是说在编译的时候是明确类型的。
任何想在运行时使用泛型的设计都属于非正常设计。
------解决方案--------------------public Create()
{
Type generic = typeof(List<>);
var list = Activator.CreateInstance(generic.MakeGenericType(this.GetType())) as IList;
}
用反射可以实现你这个需求,但就像LS说的,这种设计可能不是很好。