创建泛型类型的实例?
如果BaseFruit
有一个接受一个的构造函数,int weight
我可以用这样的泛型方法实例化一块水果吗?
public void AddFruit<T>()where T: BaseFruit{ BaseFruit fruit = new T(weight); /*new Apple(150);*/ fruit.Enlist(fruitManager);}
注释后面添加了一个示例。如果我给出BaseFruit
一个无参数构造函数然后通过成员变量填充所有内容,我似乎只能这样做。在我的真实代码中(不是关于水果),这是不切实际的。
-Update-
所以它似乎无法以任何方式通过约束来解决。从答案中有三种候选解决方案:
工厂模式
反射
活化剂
我倾向于认为反射是最不干净的,但我不能在其他两个之间做出决定。
慕村9548890