¿Crear instancia de tipo genérico?
Si BaseFruit
tiene un constructor que acepta un int weight
, ¿puedo instanciar una pieza de fruta en un método genérico como este?
public void AddFruit<T>()where T: BaseFruit{
BaseFruit fruit = new T(weight); /*new Apple(150);*/
fruit.Enlist(fruitManager);
}
Se añade un ejemplo detrás de los comentarios. Parece que solo puedo hacer esto si doy BaseFruit
un constructor sin parámetros y luego lleno todo a través de variables miembro. En mi código real (no sobre frutas) esto es bastante poco práctico.
-Actualización-
Así que parece que no puede ser resuelto por restricciones de ninguna manera entonces. De las respuestas hay tres soluciones candidatas:
- Patrón de fábrica
- Reflexión
- Activador
Tiendo a pensar que la reflexión es la menos limpia, pero no puedo decidir entre los otros dos.
Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32
Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52