我想编写的作品有点像这样的方法:通用的方法来创建多种类型
public class BaseClass {}
public class DerivedClass1 : BaseClass {}
public class DerivedClass2 : BaseClass {}
public class BaseClassCreator
{
public static T Create<T>() where T : BaseClass
{
if(T is DerivedClass1) return new DerivedClass1();
if(T is DerivedClass2) return new DerivedClass2();
return null;
}
}
我收到编译器错误说我不能转换DerivedClass1到T.如何我需要写此方法执行以下操作:
BaseClass x = BaseClassCreator.Create<DerivedClass1>();
BaseClass y = BaseClassCreator.Create<DerivedClass2>();
同时,难道不这样,如果你真的回来了更容易了一大堆(T)激活.CreateInstance(typeof(T))? – 2012-02-08 16:45:03
你的真实代码很简单吗?如果是,那么你实际上并没有做任何事情,'Activator.CreateInstance()'方法不会做。 – 2012-02-08 16:45:15
不是那么简单。这只是为了证明我得到的错误。 – Dismissile 2012-02-08 16:52:12