System.String.IsNullOrEmpty-metod

Anmärkning

Den här artikeln innehåller ytterligare kommentarer till referensdokumentationen för det här API:et.

IsNullOrEmpty är en bekvämlighetsmetod som gör att du samtidigt kan testa om en String är null eller om dess värde är String.Empty. Den motsvarar följande kod:

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

Du kan använda metoden IsNullOrWhiteSpace för att testa om en sträng är null, dess värde är String.Emptyeller om den bara består av blankstegstecken.

Vad är en null-sträng?

En sträng null om den inte har tilldelats något värde (i C++ och Visual Basic) eller om den uttryckligen har tilldelats värdet null. Även om funktionen för sammansatt formatering kan hantera en null-sträng på ett korrekt sätt, vilket visas i följande exempel, kommer ett försök att anropa en av dess medlemmar att utlösa en NullReferenceException.

  String s = null;

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

  try 
  {
      Console.WriteLine($"String length is {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.

Vad är en tom sträng?

En sträng är tom om den uttryckligen tilldelas en tom sträng ("") eller String.Empty. En tom sträng har en Length på 0. I följande exempel skapas en tom sträng och dess värde och dess längd visas.

String s = "";
Console.WriteLine($"The length of '{s}' is {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.