2011-10-02 19 views
8

Estoy seguro de que me he perdido algo aquí. Con un cierto proyecto, necesito verificar si una cadena está vacía o nula.¿Forma más fácil de escribir nulo o vacío?

¿Hay alguna manera más fácil de escribir esto?

if(myString == "" || myString == null) 
{ 
    ... 
+0

En realidad busqué. A veces las cosas muy obvias se deslizan bajo el radar. – Phil

+1

La pregunta no merecía -ve marks, agregando un enlace [String.IsNullOrEmpty] (http://msdn.microsoft.com/en-us/library/system.string.isnullorempty%28v=vs.110%29.aspx) –

Respuesta

26

Sí, está el método de String.IsNullOrEmpty ayudante para exactamente esto ya:

if (String.IsNullOrEmpty(myString)) { 
    ... 
} 
+1

Y en una nota relacionada: http://stackoverflow.com/questions/2552350/string-isnullorempty-check-for-space/2552381#2552381 – xanatos

0

Si usted está en .NET 4, puede utilizar

if(string.IsNullOrWhiteSpace(myString)){ 

} 

otra cosa:

if(string.IsNullOrEmpty(myString)){ 

} 
+5

'IsNullOrWhiteSpace' busca algo más que ser igual a' "" 'entonces tendría una semántica diferente que el fragmento de código en la pregunta. – Joey

5
if (string.IsNullOrEmpty(myString)) { 
    ... 
} 

O se puede tomar ventaja de una peculiaridad en los métodos de extensión, permiten este a ser nulo:

static class Extensions { 
    public static bool IsEmpty(this string s) { 
     return string.IsNullOrEmpty(s); 
    } 
} 

que a su vez le permite escribir:

if (myString.IsEmpty()) { 
    ... 
} 

Aunque probablemente debería conseguir otro nombre que 'vacío'.

+0

¡Buen ejemplo de métodos de extensión! ¡Gracias! – Phil

+0

¿Por qué no 'string.IsNullOrEmpty (s)' en lugar de 's == null || s == string.Empty'? – Nawaz

+0

Tienes razón, por supuesto :) –

-1

// si la cadena no se define como null entonces IsNullOrEmpty funciona muy bien, pero si la cadena nula se define a continuación, recortar lanzará una excepción.

if(string.IsNullOrEmpty(myString.Trim()){ 
... 
} 

// puede utilizar IsNullOrWhiteSpace, que funciona bien para el espacio en blanco múltiple en cadena .i.e devuélvalo cierto para múltiples espacios en blanco también

if(string.IsNullOrWhiteSpace (myString.Trim()){ 
    ... 
    } 
+1

"Trim" no es una función independiente, es un método de instancia de String. Uso adecuado: 'myString.Trim()', pero eso explota cuando mystring es nulo. Use 'String.IsNullOrWhiteSpace()' –

+0

estoy de acuerdo con usted, por lo que he corregido el código anterior. Gracias @HansKesting – Dipitak

0

Para evitar cheques nulos se pueden utilizar ?? operador.

var result = value ?? ""; 

A menudo lo uso como guardas para evitar el envío de datos que no deseo en los métodos.

JoinStrings(value1 ?? "", value2 ?? "") 

También se puede utilizar para evitar el formateo no deseado.

string ToString() 
{ 
    return "[" + (value1 ?? 0.0) + ", " + (value2 ?? 0.0) + "]"; 
} 

Esto también se puede utilizar en las declaraciones if, no es tan agradable, pero puede ser útil a veces.

if (value ?? "" != "") // Not the best example. 
{ 
} 
Cuestiones relacionadas