Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe Convert

Converte um tipo de base de dados em outro tipo de dados base.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public static class Convert

Essa classe retorna um tipo cujo valor é equivalente ao valor de um tipo especificado.Os tipos base suportados são Boolean, Char, SByte, Byte, Int16, Int32, Int64, UInt16, UInt32, UInt64, Single, Double, Decimal, DateTime e String.

Existe um método de conversão para converter cada tipo de base em todos os outros tipos base.No entanto, a telefonar real para um método de conversão específica pode produzir um dos quatro resultados dependendo do valor do tipo base em time de execução e o tipo de base de destino.Esses quatro resultados são:

  • Nenhuma conversão.Isso ocorre quando é feita uma tentativa de converter de um tipo a mesmo (por exemplo, ao chamar Convert.ToInt32(Int32) com um argumento de tipo Int32). Nesse caso, o método simplesmente retorna uma instância do tipo original.

  • An InvalidCastException. Isso ocorre quando não há suporte para uma conversão específica.An InvalidCastException é lançada para conversões seguintes:

  • Uma conversão bem-sucedida.Para conversões entre dois tipos base diferentes resultados anteriores não listados, todas sistema autônomo conversões de expansão, bem sistema autônomo todas sistema autônomo conversões de restrição não resultam em perda de dados terá êxito e o método retornará um valor do tipo de base-alvo.

  • An OverflowException. Isso ocorre quando uma restrição resultados de conversão em uma perda de dados.Por exemplo, tentando converter um Int32 instância cujo valor é 10000 para um Byte Digite lança um OverflowException porque é 10000 fora do intervalo da Byte tipo de dados.

Não será lançada uma exceção se a conversão de um tipo numérico resultados em perda de precisão (ou seja, perda de alguns menos dígitos significativos).No entanto, uma exceção será lançada se o resultado é maior do que pode ser representado por tipo de valor retornado do método de conversão específica.

Por exemplo, quando um Double é convertido em um Single, pode ocorrer uma perda de precisão, mas nenhuma exceção é lançada. No entanto, se a magnitude do Double é muito grande para ser representado por um Single, uma exceção do estouro é lançada.

Um conjunto de métodos de suporte à conversão de uma matriz de bytes e para um String ou matriz de caracteres Unicode com base dígito 64 caracteres. Expresso sistema autônomo dígitos de base 64 podem ser com com facilidade transmitidos por canais de dados que podem transmitir apenas sistema autônomo caracteres de 7 bit de dados.

Alguns dos métodos desta classe tirar um objeto de parâmetro que implementa o IFormatProvider interface. Este parâmetro pode fornecer informações de formatação específicas de cultura para auxiliar o processo de conversão.Os tipos de valor base ignorar esse parâmetro, mas qualquer tipo definido pelo usuário que implementa IConvertible Ele pode aceitar.

Para obter mais informações sobre os tipos de valor base, consulte o tópico adequado listado na seção Consulte também.

O exemplo de código a seguir demonstra alguns dos métodos de conversão no Convert classe, incluindo ToInt32, ToBoolean, e ToString.

double dNumber = 23.15;

			try {
				// Returns 23int    iNumber = System.Convert.ToInt32(dNumber);
			}
			catch (System.OverflowException) {
				System.Console.WriteLine(
							"Overflow in double to int conversion.");
			}
			// Returns Truebool   bNumber = System.Convert.ToBoolean(dNumber);
			
			// Returns "23.15"
			string strNumber = System.Convert.ToString(dNumber);

			try {
				// Returns '2'char chrNumber = System.Convert.ToChar(strNumber[0]);
			} 
			catch (System.ArgumentNullException) {
				System.Console.WriteLine("String is null");
			}
			catch (System.FormatException) {
				System.Console.WriteLine("String length is greater than 1.");
			}

			// System.Console.ReadLine() returns a string and it// must be converted.int newInteger = 0;
			try {
				System.Console.WriteLine("Enter an integer:");
				newInteger = System.Convert.ToInt32(
									System.Console.ReadLine());
			}
			catch (System.ArgumentNullException) {
				System.Console.WriteLine("String is null.");
			}
			catch (System.FormatException) {
				System.Console.WriteLine("String does not consist of an " +
								"optional sign followed by a series of digits.");
			} 
			catch (System.OverflowException) {
				System.Console.WriteLine(
				"Overflow in string to int conversion.");
			}

			System.Console.WriteLine("Your integer as a double is {0}",
									 System.Convert.ToDouble(newInteger));


double dNumber = 23.15;

try {        
    // Returns 23
    int iNumber = System.Convert.ToInt32(dNumber);
}
catch (System.OverflowException exp) {        
    System.Console.WriteLine("Overflow in double to int conversion.");
}

// Returns True
boolean bNumber = System.Convert.ToBoolean(dNumber);

// Returns "23.15"
String strNumber = System.Convert.ToString(dNumber);

try {        
    // Returns '2'
    char chrNumber = System.Convert.ToChar(strNumber.get_Chars(0));
}
catch (System.ArgumentNullException exp) {        
    System.Console.WriteLine("String is null");
}
catch (System.FormatException exp) {        
    System.Console.WriteLine("String length is greater than 1.");
}

// System.Console.ReadLine() returns a string and it
// must be converted.
int newInteger = 0;

try {        
    System.Console.WriteLine("Enter an integer:");
    newInteger = System.Convert.ToInt32(System.Console.ReadLine());
}
catch (System.ArgumentNullException exp) {        
    System.Console.WriteLine("String is null.");
}
catch (System.FormatException exp) {        
    System.Console.WriteLine(("String does not consist of an " 
        + "optional sign followed by a series of digits."));
}
catch (System.OverflowException exp) {        
    System.Console.WriteLine("Overflow in string to int conversion.");
}
System.Console.WriteLine("Your integer as a double is {0}", 
    System.Convert.ToString(System.Convert.ToDouble(newInteger)));


O exemplo de código a seguir demonstra vários métodos de conversão no Convert classe.

// Sample for the Convert class summary.using System;

class Sample 
{
    publicstaticvoid Main() 
    {
    string nl = Environment.NewLine;
    string str = "{0}Return the Int64 equivalent of the following base types:{0}";
    bool    xBool = false;
    short   xShort = 1;
    int     xInt   = 2;
    long    xLong  = 3;
    float   xSingle = 4.0f;
    double  xDouble = 5.0;
    decimal xDecimal = 6.0m;
    string  xString = "7";
    char    xChar   = '8'; // '8' = hexadecimal 38 = decimal 56
    byte    xByte  =  9;

//  The following types are not CLS-compliant.
    ushort  xUshort = 120;   
    uint    xUint =   121;
    ulong   xUlong =  122;
    sbyte   xSbyte  = 123;

//  The following type cannot be converted to an Int64.//  DateTime xDateTime = DateTime.Now;

    Console.WriteLine(str, nl);
    Console.WriteLine("Boolean:  {0}", Convert.ToInt64(xBool));
    Console.WriteLine("Int16:    {0}", Convert.ToInt64(xShort));
    Console.WriteLine("Int32:    {0}", Convert.ToInt64(xInt));
    Console.WriteLine("Int64:    {0}", Convert.ToInt64(xLong));
    Console.WriteLine("Single:   {0}", Convert.ToInt64(xSingle));
    Console.WriteLine("Double:   {0}", Convert.ToInt64(xDouble));
    Console.WriteLine("Decimal:  {0}", Convert.ToInt64(xDecimal));
    Console.WriteLine("String:   {0}", Convert.ToInt64(xString));
    Console.WriteLine("Char:     {0}", Convert.ToInt64(xChar));
    Console.WriteLine("Byte:     {0}", Convert.ToInt64(xByte));
    Console.WriteLine("DateTime: There is no example of this conversion because");
    Console.WriteLine("          a DateTime cannot be converted to an Int64.");
//
    Console.WriteLine("{0}The following types are not CLS-compliant.{0}", nl);
    Console.WriteLine("UInt16:   {0}", Convert.ToInt64(xUshort));
    Console.WriteLine("UInt32:   {0}", Convert.ToInt64(xUint));
    Console.WriteLine("UInt64:   {0}", Convert.ToInt64(xUlong));
    Console.WriteLine("SByte:    {0}", Convert.ToInt64(xSbyte));
    }
}
/*
This example produces the following results:

Return the Int64 equivalent of the following base types:

Boolean:  0
Int16:    1
Int32:    2
Int64:    3
Single:   4
Double:   5
Decimal:  6
String:   7
Char:     56
Byte:     9
DateTime: There is no example of this conversion because
          a DateTime cannot be converted to an Int64.

The following types are not CLS-compliant.

UInt16:   120
UInt32:   121
UInt64:   122
SByte:    123
*/

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatível com: 3.5, 2.0, 1.0

XNA Framework

Compatível com: , 1.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft