Escenariocadena Parse en tipo numérico anulable (1 o 2 liner)
analizar una cadena en un tipo numérico anulable. Si el análisis no tiene éxito, el resultado debe ser nulo; de lo contrario, el resultado debería ser el valor analizado.
Pregunta
Para lograr esto, siempre he utilizado el siguiente método simple pero largamente molesto:
string numericString = "...";
decimal? numericValue;
decimal temp;
if (decimal.TryParse(numericString, out temp))
{
numericValue = temp;
}
else
{
numericValue = null;
}
uso el método anterior porque la siguiente no se compila:
decimal temp;
decimal? numericValue = decimal.TryParse(numericString, out temp) ? temp : null;
¿Alguien sabe de una versión de la primera un poco de código que es tan corto, ordenado y legible como el segundo bit? Sé que siempre podría escribir un método de extensión que encapsule el primer bit de código, pero me pregunto si hay alguna manera de hacer lo que quiero sin un método de extensión.
o '? (decimal?) temp: null; 'solo para agregar otro aspecto. – Marc
Prefiero usar 'default (decimal?)', Me parece más legible que un molde ... –
@Thomas Me gusta eso. – Dan