Saltar al contenido

Una función para convertir null a string

Nuestros programadores estrellas agotaron sus depósitos de café, en su búsqueda diariamente por la resolución, hasta que Abram halló la contestación en Gitea así que en este momento la compartimos con nosotros.

Solución:

static string NullToString( object Value )
 Value == DBNull.Value ? "" : (string)Value;



Cuando obtiene un valor NULL de una base de datos, el valor devuelto es DBNull.Value en cuyo caso, simplemente puede llamar .ToString() y volverá ""

Ejemplo:

 reader["Column"].ToString() 

te atrapa "" si el valor devuelto es DBNull.Value

Si el escenario no es siempre una base de datos, optaría por un método de extensión:

public static class Extensions


    public static string EmptyIfNull(this object value)
    
        if (value == null)
            return "";
        return value.ToString();
    

Uso:

string someVar = null; 
someVar.EmptyIfNull();

Convert.ToString(object) se convierte en string. Si el objeto es null, Convert.ToString lo convierte en un vacío string.

Vocación .ToString() sobre un objeto con null valor arroja un System.NullReferenceException.

EDITAR:

Dos excepciones a las reglas:

1) ConvertToString(string) en un null string siempre volveré null.

2) ToString(Nullable) en un null el valor devolverá “” .

Ejemplo de código:

// 1) Objects:

object obj = null;

//string valX1 = obj.ToString();           // throws System.NullReferenceException !!!
string val1 = Convert.ToString(obj);    

Console.WriteLine(val1 == ""); // True
Console.WriteLine(val1 == null); // False


// 2) Strings

String str = null;
//string valX2 = str.ToString();    // throws System.NullReferenceException !!!
string val2 = Convert.ToString(str); 

Console.WriteLine(val2 == ""); // False
Console.WriteLine(val2 == null); // True            


// 3) Nullable types:

long? num = null;
string val3 = num.ToString();  // ok, no error

Console.WriteLine(num == null); // True
Console.WriteLine(val3 == "");  // True
Console.WriteLine(val3 == null); // False 

val3 = Convert.ToString(num);  

Console.WriteLine(num == null);  // True
Console.WriteLine(val3 == "");  // True
Console.WriteLine(val3 == null); // False

Reseñas y valoraciones del post

Si te sientes suscitado, eres capaz de dejar un artículo acerca de qué le añadirías a esta crónica.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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