首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么创建T为this.GetType的泛型集合

2013-01-18 
如何创建T为this.GetType的泛型集合比如如下代码,应该怎么创建这个list才对呢class a(){public Create(){v

如何创建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说的,这种设计可能不是很好。

热点排行