日期:2014-05-19  浏览次数:20800 次

初学泛型,一个问题请教!
泛型方法
void   MethodA <T> (int   i)   where   T   :   new()
{
        T   a=new   T();
..........
}

我想如下调用:
程序运行时已知类型T,假定我是通过(Type   T=typeof(ClassA))获取的,
是否有办法实现调用:MethodA(T)(0)?


------解决方案--------------------
http://community.csdn.net/Expert/topic/5570/5570412.xml?temp=4.256839E-02
------解决方案--------------------
T a = System.Activator.CreateInstance <T> ();
------解决方案--------------------
void MethodA <T> (int i) where T : new()
{
T a = Activator.CreateInstance <T> ();
}
------解决方案--------------------
泛型是编译期展开的,编译期没有对象,只有字符串。
所以,不可能。