Método System.String.IsNullOrEmpty

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

IsNullOrEmpty es un método de conveniencia que permite probar simultáneamente si es Stringnull o su valor es String.Empty. Es equivalente al código siguiente:

bool TestForNullOrEmpty(string s)
{
    bool result;
    result = s == null || s == string.Empty;
    return result;
}

string s1 = null;
string s2 = "";
Console.WriteLine(TestForNullOrEmpty(s1));
Console.WriteLine(TestForNullOrEmpty(s2));

// The example displays the following output:
//    True
//    True
result = s Is Nothing OrElse s = String.Empty
let testForNullOrEmpty (s: string): bool =
    s = null || s = String.Empty

let s1 = null
let s2 = ""

printfn "%b" (testForNullOrEmpty s1)
printfn "%b" (testForNullOrEmpty s2)

// The example displays the following output:
//    true
//    true

Puede usar el IsNullOrWhiteSpace método para probar si una cadena es null, su valor es String.Emptyo solo consta de caracteres de espacio en blanco.

¿Qué es una cadena nula?

Una cadena es null si no se le ha asignado un valor (en C++ y Visual Basic) o si se le ha asignado explícitamente un valor de null. Aunque la característica de formato compuesto puede controlar correctamente una cadena nula, como se muestra en el ejemplo siguiente, intentando llamar a una si sus miembros inician un NullReferenceException.

  String s = null;

  Console.WriteLine("The value of the string is '{0}'", s);

  try 
  {
      Console.WriteLine("String length is {0}", s.Length);
  }
  catch (NullReferenceException e) 
  {
      Console.WriteLine(e.Message);
  }

  // The example displays the following output:
  //     The value of the string is ''
  //     Object reference not set to an instance of an object.
Module Example
   Public Sub Main()
      Dim s As String

      Console.WriteLine("The value of the string is '{0}'", s)

      Try 
         Console.WriteLine("String length is {0}", s.Length)
      Catch e As NullReferenceException
         Console.WriteLine(e.Message)
      End Try   
   End Sub
End Module
' The example displays the following output:
'     The value of the string is ''
'     Object reference not set to an instance of an object.
let (s: string) = null

printfn "The value of the string is '%s'" s

try
    printfn "String length is %d" s.Length
with
    | :? NullReferenceException as ex -> printfn "%s" ex.Message

// The example displays the following output:
//     The value of the string is ''
//     Object reference not set to an instance of an object.

¿Qué es una cadena vacía?

Una cadena está vacía si se le asigna explícitamente una cadena vacía ("") o String.Empty. Una cadena vacía tiene un Length valor de 0. En el ejemplo siguiente se crea una cadena vacía y se muestra su valor y su longitud.

String s = "";
Console.WriteLine("The length of '{0}' is {1}.", s, s.Length);

// The example displays the following output:
//       The length of '' is 0.
Dim s As String = ""
Console.WriteLine("The length of '{0}' is {1}.", s, s.Length)
' The example displays the following output:
'        The length of '' is 0.
let s = ""
printfn "The length of '%s' is %d." s s.Length

// The example displays the following output:
//       The length of '' is 0.