I Generics sono una delle novità più interessanti del .NET Framework 2.0 e l'utilizzo dei metodi generici si rivela in molti casi molto utile, perchè consente di scrivere metodi dall'implementazione generica, ma perfettamente tipizzata.
Il tipico caso è un metodo che faccia da wrapper per il metodo ExecuteScalar del Command di ADO.NET, così da fornire una sola implementazione utile a restituire il tipo del valore di ritorno già pronto per l'utilizzo:
private static T ExecuteScalar<T>(string sql, SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlCommand command = new SqlCommand(sql, conn)) { if (parameters!= null) command.Parameters.AddRange(parameters); return (T)command.ExecuteScalar(); } } }
Il vantaggio di questo approccio è che il metodo è perfettamente utilizzabile con qualsiasi tipo di ritorno, senza necessità di effettuare casting.
Il tipico utilizzo potrebbe essere il seguente:
int totalRecords = ExecuteScalar<int>("SELECT COUNT(*) FROM authors", null);
In questo caso si recupera l'intero corrispondente al numero di record in maniera tipizzata e senza necessità di aggiungere
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.