Compartilhar via


Converter tipos de dados usando sistema.Convert

A classe System.Convert fornece um conjunto completo de métodos para as conversões às quais há suporte.Ele fornece uma maneira neutra com relação às linguagens para realizar conversões e está disponível para todas as linguagens que apontam para o Common Language Runtime.Ao passo que linguagens diferentes podem ter diferentes técnicas para converter tipos de dados, a classe Convert garante que todas as conversões comuns estejam disponíveis em um formato genérico.Essa classe executa expansão conversões, restrição conversões, bem sistema autônomo sistema autônomo conversões de tipos de dados não relacionados.Por exemplo, conversões de tipos String para tipos numéricos, tipos DateTime para tipos String, e tipos string para tipos Boolean são aceitas.Para obter uma lista das conversões disponíveis, consulte a lista de métodos na classe Convert.A classe Convert executa conversões verificadas e sempre lança uma exceção se não houver suporte para a conversão.A exceção é geralmente uma OverflowException.Para obter uma lista das conversões para as quais há suporte, consulte as Tabelas de Conversão de Tipos.

Você pode passar o valor que você deseja converter para um dos métodos apropriados na classe Convert e inicializar o valor retornado para uma nova variável.Por exemplo, o código a seguir usa a classe Convert para transformar um valor String em um valor Boolean.

Dim myString As String = "true"
Try
   Dim myBool As Boolean = Convert.ToBoolean(myString)
   Console.WriteLine(myBool)
Catch e As FormatException
   Console.WriteLine("{0} is not a Boolean value.", myString)
End Try   
' myBool has a value of True.
string myString = "true";
try
{
   bool myBool = Convert.ToBoolean(myString);
   Console.WriteLine(myBool);
}
catch (FormatException)
{
   Console.WriteLine("{0} is not a Boolean value.", myString);
}
// myBool has a value of True.

A classe Convert também é útil se você tiver uma sequência de caracteres que você deseja converter para um valor numérico.O exemplo de código a seguir converte uma sequência de caracteres que contém caracteres numéricos em um valor Int32.

Dim newString As String = "123456789"
Try
   Dim myInt As Integer = Convert.ToInt32(newString)
   Console.WriteLine(myInt)
Catch e As FormatException
   Console.WriteLine("{0} does not represent a number.", newString)   
Catch e As OverflowException
   Console.WriteLine("{0} is out of range of the integer type.", _
                     newString)
End Try
' myInt has a value of 123456789.
string newString = "123456789";
try
{
   int myInt = Convert.ToInt32(newString);
   Console.WriteLine(myInt);
}
catch (FormatException)
{
   Console.WriteLine("{0} does not represent a number.", 
                     newString);   
}
catch (OverflowException)
{
   Console.WriteLine("{0} is out of range of the integer type.", 
                     newString);
}
// myInt has a value of 123456789.

A classe Convert também pode ser usada para uma conversão redutora que não possa ser executada implicitamente na linguagem específica que você estiver usando.O exemplo de código a seguir mostra uma conversão redutora de um Int64 para um Int32 menor usando o método Convert.ToInt32.

Dim myInt64 As Int64 = 123456789
Try
   Dim myInt As Integer = Convert.ToInt32(myInt64)
   Console.WriteLine(myInt)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0} to an integer.", _ 
                     myInt64)
End Try
' MyInt has a value of 123456789.
Int64 myInt64 = 123456789;
try
{
   int myInt = Convert.ToInt32(myInt64);
   Console.WriteLine(myInt);
}
catch (OverflowException)
{
   Console.WriteLine("Unable to convert {0} to a 32-bit integer.", 
                     myInt64);
}
// myInt has a value of 123456789.

Às vezes, executar uma conversão redutora com a classe Convert muda o valor do item que está sendo convertido.O exemplo de código a seguir converte um Double em um valor Int32.Nesse caso, o valor é arredondado de 42.72 para 43 para concluir a conversão.

Dim myDouble As Double = 42.72
Try
   Dim myInt As Integer = Convert.ToInt32(myDouble)
   Console.WriteLine(myInt)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0} to an integer.", myDouble)
End Try   
' MyInt has a value of 43.
Double myDouble = 42.72;
try 
{
   int myInt = Convert.ToInt32(myDouble);
   Console.WriteLine(myInt);
}
catch (OverflowException)
{
   Console.WriteLine("Unable to convert {0} to an integer.", myDouble);
}
// myInt has a value of 43.

Consulte também

Conceitos

Conversão Explícita

Outros recursos

Convertendo tipos