Ho una domanda. Nel framework, che è stato scritto in gran parte prima che arrivassero i generici, si vede spesso una funzione con molti sovraccarichi per fare qualcosa con tipi diversi.Sovraccarico vs argomenti generici
una)
Parse(int data)
Parse(long data)
Parse(string data)
..etc
che sembra essere essere ok in quanto contribuisce a mantenere il codice piccola per ogni metodo e così. D'altra parte, ora con i generici è possibile effettuare le seguenti operazioni:
b)
Parse<T>(T data)
e quindi avere un qualche tipo di IFS/istruzioni switch con typeof() per cercare di dedurre quali sono i tipi sono e cosa fare con loro.
Qual è la migliore pratica? O quali sono le ideologie che mi avrebbero aiutato a scegliere tra a) eb)?
La procedura consigliata è: utilizzare _generics_ quando si implementa qualcosa che applica _generalmente_ a un numero arbitrario di tipi. Utilizzare l'overloading quando si ha _un numero specifico di alternative_. –