Если BaseFruit
есть конструктор, который принимает int weight
, могу ли я создать кусочек фрукта в общем методе, подобном этому?
public void AddFruit<T>()where T: BaseFruit{
BaseFruit fruit = new T(weight); /*new Apple(150);*/
fruit.Enlist(fruitManager);
}
Пример добавлен за комментариями. Кажется, я могу сделать это, только если я дам BaseFruit
конструктор без параметров, а затем заполню все через переменные-члены. В моем реальном коде (не о фруктах) это довольно непрактично.
-Обновление-
Так что кажется, что это никак не может быть решено ограничениями. Из ответов есть три варианта решения:
- Фабричный образец
- отражение
- возбудитель
Я склонен думать, что рефлексия наименее чистая, но я не могу выбирать между двумя другими.