Compartilhar via


Conversão: Visão geral

Cada valor possui um tipo associado, que define os atributos como a quantidade de espaço alocado para o valor, o intervalo de valores possíveis que ele é capaz de ter, e os membros que ele disponibiliza.Muitos valores podem ser expressos por mais de um tipo.Por exemplo, o valor 4 pode ser expresso como um número inteiro ou como um valor de ponto flutuante.A conversão cria um valor em um novo tipo que é equivalente ao valor de um tipo antigo, mas que não necessariamente preserva a identidade (ou valor exato) dos dois objetos.Além de oferecer suporte a conversão implícita, o .NET Framework oferece suporte à conversão explícita por meio da classe System.Convert, que fornece métodos para converter entre os tipos.

Observação:

Os idiomas individuais também podem fornecer formas para Execute conversões explícitas.Por exemplo, Translation from VPE for Csharp nos es operadores de conversão ; Visual Basic usa comp iler -implementado sistema autônomo funções de conversão CType, CInt, e DirectCast.

Conversão de ampliação e conversão de restrição são ambas suportados pelo Common Language Runtime.Por exemplo, o valor que é representado como um inteiro com sinal de 32 bits pode ser convertido em um inteiro com sinal de 64 bits.Este é um exemplo de uma conversão de ampliação.A conversão oposta (de 64 bits para 32 bits) é um exemplo de uma conversão de restrição.As informações nunca são perdidas como resultado de uma conversão de ampliação (embora a precisão possa ser); no entanto, as informações podem ser perdidas durante uma conversão de restrição.Para obter uma lista de conversões de ampliação, consulte as Tabelas de Conversão de Tipos.

O exemplo a seguir mostra uma conversão de ampliação, onde o valor Int32MyInt é convertido para um valor Int64.Essa conversão é realizada implicitamente, sem o uso da classe Convert ou qualquer outro método ou operador de conversão.

Dim MyInt As Integer = 1234567891
Dim MyBigInt As Long = MyInt
Console.WriteLine(MyBigInt)      ' Displays 1234567891
int MyInt = 1234567891;
long MyBigInt = MyInt;
Console.WriteLine(MyBigInt);           // Displays 1234567891

O exemplo a seguir mostra uma conversão de restrição, onde o valor Int64MyBigInt é convertido para um valor Int32.Tal conversão de restrição deve sempre ser executada explicitamente em C#, e deve ser executada explicitamente em Visual Basic se Option Strict estiver ativado.Nesse exemplo, o método ToInt32 é chamado para realizar a conversão.

Dim MyBigInt As Long = 1234567891
' exception handler: narrowing conversions can overflow
Try
   Dim MyInt As Integer = Convert.ToInt32(MyBigInt)
   Console.WriteLine(MyInt)         ' Displays 1234567891
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0} to an integer.", _ 
                     MyBigInt)      
End Try   
long MyBigInt = 1234567891;
// exception handler: narrowing conversions can overflow
try
{
   int MyInt = Convert.ToInt32(MyBigInt);
   Console.WriteLine(MyBigInt);        // Displays 1234567891
}
catch (OverflowException)
{
   Console.WriteLine("Unable to convert {0} to an integer.", 
                     MyBigInt);
}   

Consulte também

Conceitos

Tabelas de Conversão de Tipos

Converter tipos de dados usando sistema.Convert

Conversão Explícita

Referência

System.Convert

Outros recursos

Trabalhando com Tipos de Base