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
Converter tipos de dados usando sistema.Convert