Home Page Home Page Tips & Tricks Eseguire il Cast usando il metodo TryParse

Eseguire il Cast usando il metodo TryParse


Nel .NET Framework 1.x per effettuare il casting da un'oggetto (tipicamente string) ad un altro(datetime, integer, decimal altro) si è sempre usato il metodo Parse dell'oggetto a cui si doveva convertire.

Esempio

Codice .NET n°1
DateTime dataNascita = DateTime.Parse(txtDataNascita.text)


Il problema di questa conversione è che se non è possibile eseguire la conversione viene sollevata una eccezione con tutti i problemi del caso, ovvero gestire l'eccezione ma ancora peggio riduzioni delle prestazioni.
Per chi non lo sapesse bisogna usare con molta attenzione le Exception perchè riducono di molto le prestazioni delle nostre applicazioni.

Con il .NET Framework 2.0 è stato aggiunto un nuovo metodo il TryParse che tenta di eseguire la conversione e se non è possibile eseguirla ritorna un null senza sollevare nessuna exception.

C#
Codice .NET n°2
DateTime dataCastata;
DateTime dataNascita;
if(DateTime.TryParse(txtDataNascita.text, out dataCastata)
{
dataNascita = dataCastata;
}


VB.NET
Codice .NET n°3
Dim dataCastata as DateTime;
Dim dataNascita as DateTime;
if(DateTime.TryParse(txtDataNascita.Text, ref dataCastata)
{
dataNascita = dataCastata
}


Funzionamento TryParse


Il metodo ritorna true se riesce ad eseguire la conversione, il primo parametro è l'oggetto da castare, il secondo è l'oggetto da riempire castato che deve essere passato come riferimento. Il secondo parametro ritornerà un null se la conversione ha avuto un esito negativo.

TryParse ha anche un overload dove si può speficicare lo stile e la formattazione.

Conclusioni


Nel .NET Framework 2.0 quindi bisogna usare TryParse per ottimizzare le nostre applicazioni e per chi progetta controlli, classi tipizzate consiglio di implementare questo pattern per migliorare l’oggetto creato.
Copyright © dotNetHell.it 2002-2018
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5