[Tips] Formatear variables nullables

Hace un par de dias un amigo me hizo una consulta al paso, «Sabes bien como se formatea un decimal nullable?». La verdad es que me molestó no tener la respuesta y me sorprendió que él tampoco lo supiera y que me consultara a mi en vez de googlear!. 

Claro, por ser nullable no tiene el método ToString(), así que vamos a compartir las dos soluciones encontradas que, aunque muchos pueden conocerlas, muchos no.

La clase genérica Nullable<T> posee dos método:

C# Code
public T GetValueOrDefault()
{
    return this.value;
}

y,

C# Code
public T GetValueOrDefault(T defaultValue)
{
    if (!this.HasValue)
    {
        return defaultValue;
    }
    return this.value;
}

También contamos con el operador ?? como sigue:

C# Code
(decimalNullable ?? 0).ToString("$ 0###.####");

 

El siguiente segmento de código muestra lasformas de hacer lo mismo:

C# Code
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            decimal? decimalNullable = null;
            string formated;

            formated = decimalNullable.GetValueOrDefault().ToString("$ 0###.####");
            formated = decimalNullable.GetValueOrDefault(0).ToString("$ 0###.####");
            formated = (decimalNullable ?? 0).ToString("$ 0###.####");

            // Esta linea lanza una exception InvalidOperationException
            formated = decimalNullable.Value.ToString("$ 0###.####");
        }
    }
}

Lucas Ontivero

Sin categoría

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *