Encuentro en el blog de Gunnar Peipman un post sobre el nuevo método string.IsNullOrWhiteSpace, aparecido en .NET Framework 4.0 Beta 2, cuya misión es retornar un booleano indicando si la cadena pasada como parámetro contiene un nulo, está vacío, o exclusivamente caracteres de espaciado (espacios, saltos de línea, tabulaciones, etc.), un escenario bastante frecuente cuando estamos, por ejemplo, validando formularios o cualquier tipo de datos de entrada.
Por si no podemos esperar hasta la llegada de la nueva versión del framework, Gunnar propone una solución temporal basada en crear un método de extensión sobre la clase string que realice la misma tarea:
public static class StringHelper
{ public static bool IsNullOrWhiteSpace(this string s)
{ if (s == null)
return true;
return (s.Trim() == string.Empty);
}
}
string a = null;
string b = " ";
string c = "\n";
string d = "Hey!";
Console.Write (a.IsNullOrWhiteSpace()); // True Console.Write (b.IsNullOrWhiteSpace()); // True Console.Write (c.IsNullOrWhiteSpace()); // True Console.Write (d.IsNullOrWhiteSpace()); // FalseY para los fieles a Visual Basic .NET, ahí va el código equivalente:
Imports System.Runtime.CompilerServices Public Module StringHelper
<Extension()> _
Public Function IsNullOrWhiteSpace(ByVal s As String) As Boolean
If s Is Nothing Then
Return True End If
Return s.Trim() = String.Empty
End Function
End Module
Publicado en: Variable not found.
Estos contenidos se publican bajo una licencia de Creative Commons


3 Comentarios:
¿No te parece que, en ocasiones, el uso indistinto de null y cadena vacía puede deberse a errores de diseño y con ese método no está el desarrollador más que "tapando" un problema subyacente más profundo?
Creo que en muchas ocasiones habría que preguntarse : "¿por qué puede llegarme null y cadena vacía?" antes de utilizar ese método.
Saludos.
Pues sí, anónimo, en ocasiones la recepción de un nulo puede ser una pista de que algo no se está haciendo correctamente en algún otro punto del sistema, o simplemente de que se ha tomado otro criterio para representar el "vacío" en una cadena. En cualquier caso, sería conveniente, como indicas, preguntarse el por qué, para evitar posteriores problemas.
Hay otras ocasiones, sin embargo, en las que el nulo, la cadena vacía e incluso los espacios en blanco pueden ser semánticamente similares y queremos tratarlos de la misma forma, y ahí es donde éste método sería útil.
Saludos y gracias por aportar!
Eso esta muy bien Anónimo, si es un proyecto de Cero claro, pero muchas veces la recepción de los datos te vienen de mil sitios o el desarrollo es solo parte de todo un sistema o bien muy antiguo o realizado por alguien ausente.
En muchas bases de datos he visto blancos en vez de nulos, y ya no te digo en los clientes donde los datos pueden ser manipulados por los usuarios, pufff
Enviar un nuevo comentario
Backlinks:
¡Bloguea sobre este tema!