HOWTO · Csharp

Wie wandelt man eine Zeichenkette in C# in einen Boolean-Wert um?

Dieser Artikel erklärt, wie Sie eine Zeichenkette in C# in einen Boolean-Wert umwandeln. Er behandelt die Methoden ToBoolean() und TryParse().

Auf dieser Seite

Um Text in C# in einen Boolean-Wert umzuwandeln, verwenden Sie Convert.ToBoolean, wenn die Eingabe sicher gültig ist, oder Boolean.TryParse, wenn sie von einem Benutzer oder einer anderen nicht vertrauenswürdigen Quelle stammen kann. Beide Methoden erkennen die Wörter true und false unabhängig von Groß- und Kleinschreibung und erlauben umgebende Leerzeichen. Werte wie yes oder 1 gelten nicht als Boolean-Text. Wählen Sie TryParse, wenn die Anwendung eine fehlgeschlagene Konvertierung ohne Ausnahme behandeln soll.

Zwischen Convert.ToBoolean und Boolean.TryParse wählen

Die Methoden unterscheiden sich vor allem darin, wie sie einen Konvertierungsfehler melden. Convert.ToBoolean gibt für erkannten Text einen bool-Wert zurück, liefert bei einer null-Zeichenkette false und löst bei anderem Text, der nicht null ist, eine FormatException aus. Boolean.TryParse gibt stattdessen einen Erfolgsstatus zurück und legt den geparsten Wert in einem out-Parameter ab. Bei null oder nicht erkanntem Text ist der Rückgabewert false; bei einem fehlgeschlagenen Parse ist auch der Ausgabewert false. Verwenden Sie TryParse, um Formularwerte, Konfigurationszeichenketten oder andere Eingaben zu prüfen, die fehlerhaft sein können. Greifen Sie auf Convert.ToBoolean zurück, wenn das Auslösen einer Ausnahme für Ihren Anwendungsfall angemessen ist.

Eine Zeichenkette mit Convert.ToBoolean konvertieren

Die folgende Überladung von Convert.ToBoolean nimmt ein Zeichenkettenargument entgegen und gibt einen bool-Wert zurück. Das Ergebnis wird in value gespeichert und vom Programm auf die Standardausgabe geschrieben.

Führen Sie dieses Beispiel aus:

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

using System;

class StringToBoolean
{
    static void Main()
    {
        string input = "true";
        bool value = Convert.ToBoolean(input);
        Console.WriteLine(value);
    }
}

Bei einer nullable behandelten Eingabe gibt die Konvertierung false zurück, wenn die Zeichenkette null ist. Eine Zeichenkette, die nicht null ist und keinen akzeptierten Boolean-Text enthält, führt zu einer FormatException. Ist das in Ihrer Anwendung möglich, verwenden Sie das folgende sichere Parsing-Muster oder behandeln Sie die Ausnahme gezielt.

Eingaben sicher mit Boolean.TryParse parsen

Die Methode Boolean.TryParse nimmt die Zeichenkette und einen out bool entgegen. Ihr Rückgabewert gibt an, ob das Parsing erfolgreich war; die out-Variable enthält den geparsten Wert. Prüfen Sie den Rückgabewert, bevor Sie den Wert als gültige Eingabe verwenden. Dieses Beispiel verarbeitet einen erkannten Wert und meldet außerdem, wenn sich der Text nicht parsen lässt. TryParse löst bei null oder nicht erkanntem Text keine Ausnahme aus.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

using System;

class StringToBoolean
{
    static void Main()
    {
        string input = "true";
        bool value;
        if (Boolean.TryParse(input, out value))
        {
            Console.WriteLine("Parsed: " + value);
        }
        else
        {
            Console.WriteLine("Could not parse the input.");
        }
    }
}

Ersetzen Sie beispielsweise input durch "yes" oder null, um den Fehlerzweig auszuführen. In beiden Fällen gibt TryParse false zurück und setzt value auf false. Die Methode eignet sich daher, wenn eine fehlgeschlagene Konvertierung zu erwarten ist und der aufrufende Code entscheiden muss, ob er die Eingabe prüft, erneut danach fragt oder einen Ersatzwert verwendet. Ein fehlgeschlagener Parse ist nicht dasselbe wie ein erfolgreich geparstes false: Anhand des Rückgabewerts können Sie die Fälle unterscheiden. Wenn Sie ihn ignorieren und nur value betrachten, sehen beide Ergebnisse gleich aus. Bei einer Einstellung mit einem dokumentierten Standardwert können Sie ihn im else-Zweig anwenden. Bei interaktiven Daten zeigen Sie eine Validierungsmeldung an und ermöglichen es dem Benutzer, den ursprünglichen Text zu korrigieren.