Un collega mi ha indirizzato verso uno strano caso in C# (non è sicuro se questo sia davvero strano).
Supponiamo di avere un dipendente di classe. Se si desidera creare un elenco generico <> di tipo Employee, si può semplicemente fare:
Perché questo non è possibile in C# Generics?
List<Employee> x = new List<Employee>;
ho capito che ho bisogno di passare il tipo Employee alla lista generico in modo che conosce le informazioni tipo richiesto su Dipendente e genera metodi che restituiscono e accettano parametri compatibili con Dipendente.
Ora la mia domanda è: perché non è possibile eseguire quanto segue?
Employee x = new Employee();
List<typeof(x)> list = new List<typeof(x)>();
Non dovrebbe bastare questo le informazioni necessarie per Lista <> di conoscere, al fine di creare una lista? In altre parole, il tipo di x che è il tipo di Dipendente è ora passato come parametro di tipo generico a Elenco <>, che (come credevo) è lo stesso della lista di passaggio il nome del tipo (in questo caso Dipendente) .
So che qualcosa di simile è disponibile in Java (utilizzando la parola chiave .class) su una variabile.
Sono sicuro che mi manca qualcosa, quindi per favore, illuminami ragazzi!
Esempio di buon codice. Cosa succederebbe se si usasse 'typeof' nella variabile' list'? – FrustratedWithFormsDesigner
typeof (elenco) comporterebbe un errore di compilazione. –
Jon, grazie per la tua risposta dettagliata! E poiché si tratta di informazioni sulla compilazione del tempo, allora sono sulla strada giusta. Parlare del fatto che sia utile o meno è in qualche modo controverso;). – Galilyou