HOWTO · Csharp
Como converter uma string em Booleano em C#
Este artigo introduz como converter um string em booleano em C#. Ele inclui o método ToBoolean() e o método TryParse().
Nesta página
Para converter texto em um valor Booleano em C#, use Convert.ToBoolean quando souber que a entrada é válida, ou Boolean.TryParse quando ela puder vir de um usuário ou de outra fonte não confiável. Ambos reconhecem as palavras true e false sem diferenciar maiúsculas de minúsculas e permitem espaços em branco antes e depois do texto. Valores como yes e 1 não são reconhecidos como texto Booleano. Escolha TryParse quando a aplicação precisar lidar com uma conversão malsucedida sem lançar uma exceção.
Escolha entre Convert.ToBoolean e Boolean.TryParse
Os métodos diferem principalmente na forma como informam uma falha de conversão. Convert.ToBoolean retorna um bool para textos reconhecidos, retorna false se a string for nula e lança FormatException para outros textos não nulos. Já Boolean.TryParse retorna um indicador de sucesso e coloca o valor analisado em um parâmetro out. Ele retorna false para texto nulo ou não reconhecido, e o valor de saída é false quando a análise falha. Use TryParse para validar valores de formulários, strings de configuração ou outras entradas que possam estar malformadas; reserve Convert.ToBoolean para situações em que o comportamento com exceção seja apropriado.
Converta uma string com Convert.ToBoolean
A sobrecarga de Convert.ToBoolean mostrada abaixo recebe um argumento do tipo string e retorna um bool. O resultado é atribuído a value e escrito pelo programa na saída padrão.
Execute este exemplo. A saída é True; o texto exibido permanece em inglês no bloco de código imutável.
using System;
class StringToBoolean
{
static void Main()
{
string input = "true";
bool value = Convert.ToBoolean(input);
Console.WriteLine(value);
}
}
Para uma entrada que pode ser nula, a conversão retorna false quando a string é nula. Uma string não nula fora dos textos Booleanos aceitos causa FormatException; se isso puder acontecer na sua aplicação, use o padrão de análise segura abaixo ou trate a exceção deliberadamente.
Analise a entrada com segurança usando Boolean.TryParse
O método Boolean.TryParse recebe a string e um out bool. O valor retornado indica se a análise foi bem-sucedida; a variável out contém o valor analisado. Verifique o valor retornado antes de usar o resultado como uma entrada válida. Este exemplo trata um valor reconhecido e também informa quando o texto não pode ser analisado; TryParse não lança uma exceção para texto nulo ou não reconhecido. A saída é Parsed: True; essas mensagens permanecem em inglês no bloco de código imutável.
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.");
}
}
}
Por exemplo, substitua input por "yes" ou null para seguir o ramo de falha. Em ambos os casos, TryParse retorna false e define value como false. Isso torna o método útil quando uma conversão malsucedida é uma possibilidade esperada e o chamador precisa decidir como validar a entrada, pedir que ela seja informada novamente ou aplicar um valor alternativo. Uma análise malsucedida é diferente de analisar false com sucesso: verifique o valor retornado para distingui-las. Se você ignorá-lo e examinar apenas value, ambos os casos parecerão false. Para uma configuração com um valor padrão documentado, aplique-o no ramo else; para dados informados interativamente, mostre uma mensagem de validação e permita que o usuário corrija o texto original.