HOWTO · Csharp

Convertire una stringa in booleano in C#

Questo articolo introduce come convertire una stringa in booleana in C#. Include il metodo ToBoolean() e il metodo TryParse().

In questa pagina

Per convertire testo in un valore Boolean in C#, usa Convert.ToBoolean quando sai che l’input è valido, oppure Boolean.TryParse quando può provenire da un utente o da un’altra fonte non attendibile. Entrambi riconoscono le parole true e false senza distinzione tra maiuscole e minuscole e consentono spazi bianchi prima e dopo il testo. Non considerano valori come yes o 1 testo Boolean. Scegli TryParse quando l’applicazione deve gestire una conversione non riuscita senza generare un’eccezione.

Scegli tra Convert.ToBoolean e Boolean.TryParse

I metodi differiscono soprattutto per il modo in cui segnalano un errore di conversione. Convert.ToBoolean restituisce un bool per il testo riconosciuto, restituisce false se la stringa è null e genera FormatException per gli altri testi non null. Boolean.TryParse, invece, restituisce un indicatore di esito positivo e inserisce il valore analizzato in un parametro out. Restituisce false se il testo è null o non riconosciuto; in caso di errore, anche il valore di output è false. Usa TryParse per convalidare valori di moduli, stringhe di configurazione o altri input che potrebbero essere malformati; riserva Convert.ToBoolean ai casi in cui il comportamento basato su eccezioni è appropriato.

Converti una stringa con Convert.ToBoolean

L’overload Convert.ToBoolean qui sotto accetta un argomento stringa e restituisce un bool. Il risultato viene assegnato a value e il programma lo scrive nell’output standard.

Esegui questo esempio. Il codice e le eventuali etichette o gli output visibili in questa sezione restano in inglese:

using System;

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

Con un input nullable, la conversione restituisce false quando la stringa è null. Una stringa non null che non rientra nel testo Boolean accettato causa FormatException; se ciò può accadere nella tua applicazione, usa il modello di analisi sicura qui sotto oppure gestisci l’eccezione in modo esplicito.

Analizza l’input in modo sicuro con Boolean.TryParse

Il metodo Boolean.TryParse accetta la stringa e un out bool. Il valore restituito indica se l’analisi è riuscita; la variabile out contiene il valore analizzato. Controlla il valore restituito prima di usare il risultato come input valido. Questo esempio gestisce un valore riconosciuto e segnala anche quando il testo non può essere analizzato; TryParse non genera eccezioni se il testo è null o non riconosciuto. Il codice e le eventuali etichette o gli output visibili in questa sezione restano in inglese.

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.");
        }
    }
}

Ad esempio, sostituisci input con "yes" oppure con null per seguire il ramo di errore. In entrambi i casi, TryParse restituisce false e assegna false a value. Il metodo è quindi utile quando è possibile che una conversione non riesca e il chiamante deve decidere se convalidare l’input, chiedere di inserirlo di nuovo o applicare un valore di ripiego. Un’analisi non riuscita è diversa dall’analisi riuscita del valore false: controlla il valore restituito per distinguerle. Se lo ignori e controlli solo value, entrambi i casi risultano false. Per un’impostazione con un valore predefinito documentato, applicalo nel ramo else; per i dati inseriti dall’utente, mostra un messaggio di convalida e consenti di correggere il testo originale.