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.
Approfondimenti
Short-circuiting della Pipeline in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Implementare il throttling in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Utilizzare la libreria Benchmark.NET per misurare le performance
Load test di ASP.NET Core con k6
I più letti di oggi
- annunciato #netstandard 2.1. .NET Core lo supporterà a partire da #netcore3, così come le prossime versione di #xamarin, #mono e #unity.il supporto per #netfx 4.8, invece, non ci sarà. https://aspit.co/bq2
- Annunciato Silverlight 4 RC e Windows Phone Developer Tools
- Speciale Razor: il nuovo view engine di WebMatrix e ASP.NET MVC
- Speciale Windows Store app: costruire app con WinRT per Windows 8
- Gestire lo stato all'interno di un class component di ReactJS
- Inserimenti bulk su database con la classe SqlBulkCopy di ADO.NET 2.0
- disponibile su MSDN la versione RTM di #VS2013 Update 2! https://aspit.co/auj #msTechEd