Se BaseFruit
ha un costruttore che accetta un int weight
, posso creare un'istanza di un pezzo di frutta in un metodo generico come questo?Crea istanza di tipo generico?
public void AddFruit<T>()where T: BaseFruit{
BaseFruit fruit = new T(weight); /*new Apple(150);*/
fruit.Enlist(fruitManager);
}
Un commento è stato aggiunto dietro i commenti. Sembra che posso farlo solo se io do a BaseFruit
un costruttore senza parametri e poi riempi tutto attraverso le variabili membro. Nel mio vero codice (non sulla frutta) questo è piuttosto poco pratico.
-Ricalcola-
Così sembra che non può essere risolto con i vincoli in alcun modo allora. Dalle risposte ci sono tre soluzioni candidate:
- fabbrica modello
- Riflessione
- Activator
Tendo a pensare riflessione è il meno pulito, ma non riesco a decidere tra la altri due.
BTW: oggi probabilmente risolverei questo con la libreria di IoC di scelta. –