2011-06-26 34 views
7

Si string.Empty != null se crea string.IsNullOrEmpty()?por qué se crea string.IsNullOrEmpty()?

sólo quiero decir que:
si null y string.Empty son diferentes entre sí.

  • por qué string.IsNull(); y string.IsEmpty(); métodos separados no existe.
  • ¿por qué existe un método combinado string.IsNullOrEmpty()?
+3

Porque comprobar si la cadena contiene al menos un carácter o no es una de las cosas más comunes, por lo que los desarrolladores de .NET nos dieron un buen atajo. –

+0

No estoy contento con mi formato :(¿Alguien puede reformatearlo para mí ... –

+1

Reformate exactamente? Me parece bien –

Respuesta

16
  • string.IsNull no existe porque usted acaba de verificación para la referencia siendo nula
  • string.IsEmpty no existe porque se puede comparar fácilmente por la igualdad con "" o para una longitud de 0
  • string.IsNullOrEmpty existe porque es más fácil de escribir la única llamada a un método que utilice

    if (text == null || text.Length == 0) 
    

    (o la inversa, por supuesto).

Cada uno de los controles individuales se puede hacer simplemente, pero es conveniente tener una combinación de ambos.

+0

aahhhh, no sé por qué estas tontas preguntas vienen a mi mente ... :(gracias @Jon por su respuesta; –

+3

Y no olvide que .NET 4 agrega IsNullOrWhitespace. Y esta comprobación es más que una sola línea de código. – Euphoric

+0

Pero, ¿cuándo se necesita una de estas funciones? Raramente encuentro situaciones en las que uno quiere tratar 'null' y' "" 'de la misma manera. Encuentro' null' por lo general implica un error de programación y lleva a 'ArgumentNullException' y' "" 'puede ser una mala entrada del usuario que requiere un comportamiento completamente diferente. Y aunque sea un error debería arrojar algo como 'ArgumentException' – CodesInChaos

1

Es para verificar que la cadena de entrada sea válida. (por ejemplo, no nulo y no vacío). Así que no desea hacer los dos controles cada vez que quiera asegurarse de que esté hecho para eso. Si desea marcar alguno de los únicos, puede usar el == null o el == "".

Cuestiones relacionadas