ScenarioParse stringa in tipo numerico nullable (1 o 2 liner)
analizzare una stringa in un tipo numerico nullable. Se l'analisi non ha esito positivo, il risultato dovrebbe essere nullo; altrimenti il risultato dovrebbe essere il valore analizzato.
Domanda
Per fare questo, ho sempre usato il seguente metodo semplice ma lungamente fastidioso:
string numericString = "...";
decimal? numericValue;
decimal temp;
if (decimal.TryParse(numericString, out temp))
{
numericValue = temp;
}
else
{
numericValue = null;
}
Io uso il metodo di cui sopra, perché seguente non compila:
decimal temp;
decimal? numericValue = decimal.TryParse(numericString, out temp) ? temp : null;
Qualcuno sa di una versione del primo bit di codice che è il più breve, ordinato e leggibile come il secondo bit? So che potrei sempre scrivere un metodo di estensione che incapsula il primo bit di codice, ma mi chiedo se c'è un modo per fare ciò che voglio senza un metodo di estensione.
o '? (decimale?) temp: null; 'solo per aggiungere un altro sguardo. – Marc
Preferisco usare 'default (decimale?)', Lo trovo più leggibile di un cast ... –
@Thomas mi piace. – Dan