Se BaseFruit
ha un costruttore che accetta un int weight
, posso creare un'istanza di un frutto in un metodo generico come questo?
public void AddFruit<T>()where T: BaseFruit{
BaseFruit fruit = new T(weight); /*new Apple(150);*/
fruit.Enlist(fruitManager);
}
Un esempio viene aggiunto dietro i commenti. Sembra che posso farlo solo se do BaseFruit
un costruttore senza parametri e poi riempio tutto attraverso le variabili membro. Nel mio vero codice (non sulla frutta) questo è piuttosto poco pratico.
-Aggiornamento-
Quindi sembra che non possa essere risolto in alcun modo dai vincoli. Dalle risposte ci sono tre soluzioni candidate:
- Modello di fabbrica
- Riflessione
- Activator
Tendo a pensare che il riflesso sia il meno pulito, ma non riesco a decidere tra gli altri due.