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

Método UInt16.Parse (String, NumberStyles, IFormatProvider)

Converte a representação de cadeia de caracteres de um número em um estilo especificado e a cultura de formato específico para seu equivalente de 16 bits de número inteiro sem sinal.

Esta API não compatível com CLS. A alternativa compatível com CLS é Parse.

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

[CLSCompliantAttribute(false)]
public static ushort Parse(
	string s,
	NumberStyles style,
	IFormatProvider provider
)

Parâmetros

s
Tipo: System.String
Uma cadeia de caracteres que representa o número a ser convertido. A cadeia de caracteres é interpretada usando-se o estilo especificado pelo parâmetro style.
style
Tipo: System.Globalization.NumberStyles
Uma combinação de bit a bit dos valores de enumeração que indicam que os elementos de estilo que possa estar presente em s. Um valor típico a ser especificado é NumberStyles.Integer.
provider
Tipo: System.IFormatProvider
Um objeto que fornece informações de formatação específicas de cultura sobre s.

Valor de retorno

Tipo: System.UInt16
Um equivalente de 16 bits do número inteiro sem sinal para o número especificado em s.

ExceçãoCondição
ArgumentNullException

s é null.

ArgumentException

style não é um valor NumberStyles.

-ou-

style não é uma combinação de valores AllowHexSpecifier e HexNumber.

FormatException

s não está em um formato compatível com style.

OverflowException

s representa um número que é menor que UInt16.MinValue ou maior que UInt16.MaxValue.

-ou-

s inclui dígitos fracionários, diferentes de zero.

O parâmetro style define os elementos de estilo (como o espaço em branco ou o símbolo de sinal positivo ou negativo) que são permitidos no parâmetro s para que a operação de análise seja bem-sucedida. Ele deve ser uma combinação de sinalizadores de bits da enumeração NumberStyles.

Dependendo do valor de style, o parâmetro s pode incluir os seguintes elementos:

[ws][$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]

Os elementos entre colchetes ([ e ]) são opcionais. Se style inclui NumberStyles.AllowHexSpecifier, o parâmetro de s pode incluir os seguintes elementos:

[ws]hexdigits[ws]

A tabela a seguir descreve cada elemento.

ELEMENT

Descrição

ws

Espaço em branco opcional. Espaço em branco pode ser exibido no início de s caso style inclua o sinalizador NumberStyles.AllowLeadingWhite e pode ser exibido no final de s caso style inclua o sinalizador NumberStyles.AllowTrailingWhite.

$

Um símbolo de moeda específico de cultura. Sua posição na cadeia de caracteres é definida pela propriedade de CurrencyPositivePattern do objeto de NumberFormatInfo que é retornado pelo método de GetFormat do parâmetro de provider . O símbolo de moeda pode ser exibido em s caso style inclua o sinalizador NumberStyles.AllowCurrencySymbol.

sinal

Um sinal opcional. (O método gerará OverflowException se s inclui um sinal negativo e representa um número diferente de zero.) O sinal pode aparecer no início de s se style inclui o sinalizador de NumberStyles.AllowLeadingSign , e pode ser exibido o final de s se style inclui o sinalizador de NumberStyles.AllowTrailingSign . Os parênteses podem ser usados em s para indicar um valor negativo caso style inclua o sinalizador NumberStyles.AllowParentheses.

dígitos

Uma sequência de dígitos de 0 a 9.

.

Um símbolo de vírgula decimal específico de cultura. O símbolo da vírgula decimal da cultura atual pode ser exibido em s caso style inclua o sinalizador NumberStyles.AllowDecimalPoint.

dígitos fracionários

Uma ou mais ocorrências do dígito 0-9 caso style inclua o sinalizador NumberStyles.AllowExponent ou uma ou mais ocorrências do dígito 0 do contrário. Os dígitos fracionários só podem ser exibidos em s caso style inclua o sinalizador NumberStyles.AllowDecimalPoint.

E

O caractere "e" ou "E", que indica que o valor é representado em notação exponencial (científica). O parâmetro s pode representar um número em notação exponencial caso style inclua o sinalizador NumberStyles.AllowExponent.

dígitos exponenciais

Uma sequência de dígitos de 0 a 9. O parâmetro s pode representar um número em notação exponencial caso style inclua o sinalizador NumberStyles.AllowExponent.

hexdigits

Uma sequência de dígitos hexadecimais de 0 a f ou de 0 a F.

Uma cadeia de caracteres apenas com dígitos decimais (que corresponde ao estilo NumberStyles.None ) sempre é analisada com êxito. A maioria dos elementos de controle de membros NumberStyles restantes que podem estar presentes, mas que não precisam estar presentes, na cadeia de caracteres de entrada. A tabela a seguir indica como os membros NumberStyles individuais afetam os elementos que podem estar presentes em s.

Valores NumberStyles não compostos

Elementos permitidos em s além de dígitos

NumberStyles.None

Somente dígitos decimais.

NumberStyles.AllowDecimalPoint

A vírgula decimal (,) e os elementos dígitos fracionários. Entretanto, caso o estilo não inclua o sinalizador NumberStyles.AllowExponent, fractional_digits deve consistir apenas em um ou mais dígitos 0; do contrário, um OverflowException é lançado.

NumberStyles.AllowExponent

O caractere "e" ou "E", que indica a notação exponencial com exponential_digits.

NumberStyles.AllowLeadingWhite

O elemento ws no início de s.

NumberStyles.AllowTrailingWhite

O elemento ws no final de s.

NumberStyles.AllowLeadingSign

Um sinal antes de dígitos.

NumberStyles.AllowTrailingSign

Um sinal depois de dígitos.

NumberStyles.AllowParentheses

Parênteses antes e depois de dígitos para indicar um valor negativo.

NumberStyles.AllowThousands

O elemento separador do grupo (,).

NumberStyles.AllowCurrencySymbol

O elemento de moeda ($).

Caso o sinalizador NumberStyles.AllowHexSpecifier seja usado, s deve ser um valor hexadecimal. O único outros sinalizadores que podem ser combinados com ele são NumberStyles.AllowLeadingWhite e NumberStyles.AllowTrailingWhite. (A enumeração de NumberStyles inclui um estilo de número composto, NumberStyles.HexNumber, que inclui ambos os sinalizadores de espaço em branco.)

ObservaçãoObservação

Caso o parâmetro s seja a representação da cadeia de caracteres de um número hexadecimal, ele não pode ser precedido por uma decoração (como 0x ou &h) que o diferencia como um número hexadecimal. Isso faz a operação de análise lançar uma exceção.

O parâmetro provider é uma implementação de IFormatProvider cujo método GetFormat retorna um objeto NumberFormatInfo que fornece informações de cultura específica sobre o formato de s. Existem três maneiras de usar o parâmetro provider para fornecer informações de formatação personalizadas para a operação de análise:

  • É possível passar o objeto real NumberFormatInfo que fornece informações de formatação. (Sua implementação de GetFormat retorna apenas ele próprio.)

  • É possível passar um objeto CultureInfo que especifica a cultura cuja formatação deve ser usada. A propriedade NumberFormat fornece informações de formatação.

  • É possível passar uma implementação de IFormatProvider personalizada. O método GetFormat deve criar uma instância e retornar o objeto NumberFormatInfo que fornece informações de formatação.

Caso provider seja null, o objeto NumberFormatInfo da cultura atual é usado.

O exemplo a seguir usa o método de Parse(String, NumberStyles, IFormatProvider) para converter mais representações de cadeia de caracteres dos números em valores de número inteiro sem sinal de 16 bits.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] cultureNames = { "en-US", "fr-FR" };
      NumberStyles[] styles= { NumberStyles.Integer, 
                               NumberStyles.Integer | NumberStyles.AllowDecimalPoint };
      string[] values = { "1702", "+1702.0", "+1702,0", "-1032.00",
                          "-1032,00", "1045.1", "1045,1" };

      // Parse strings using each culture
      foreach (string cultureName in cultureNames)
      {
         CultureInfo ci = new CultureInfo(cultureName);
         Console.WriteLine("Parsing strings using the {0} culture", 
                           ci.DisplayName);
         // Use each style.
         foreach (NumberStyles style in styles)
         {
            Console.WriteLine("   Style: {0}", style.ToString());
            // Parse each numeric string.
            foreach (string value in values)
            {
               try {
                  Console.WriteLine("      Converted '{0}' to {1}.", value, 
                                    UInt16.Parse(value, style, ci));
               }                                    
               catch (FormatException) {
                  Console.WriteLine("      Unable to parse '{0}'.", value);   
               }
               catch (OverflowException) {
                  Console.WriteLine("      '{0}' is out of range of the UInt16 type.", 
                                    value);
               }
            }
         }
      }   
   }
}
// The example displays the following output:
//       Parsing strings using the English (United States) culture
//          Style: Integer
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Unable to parse '+1702,0'.
//             Unable to parse '-1032.00'.
//             Unable to parse '-1032,00'.
//             Unable to parse '1045.1'.
//             Unable to parse '1045,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '1702' to 1702.
//             Converted '+1702.0' to 1702.
//             Unable to parse '+1702,0'.
//             '-1032.00' is out of range of the UInt16 type.
//             Unable to parse '-1032,00'.
//             '1045.1' is out of range of the UInt16 type.
//             Unable to parse '1045,1'.
//       Parsing strings using the French (France) culture
//          Style: Integer
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Unable to parse '+1702,0'.
//             Unable to parse '-1032.00'.
//             Unable to parse '-1032,00'.
//             Unable to parse '1045.1'.
//             Unable to parse '1045,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Converted '+1702,0' to 1702.
//             Unable to parse '-1032.00'.
//             '-1032,00' is out of range of the UInt16 type.
//             Unable to parse '1045.1'.
//             '1045,1' is out of range of the UInt16 type.


.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Biblioteca de Classes Portátil

Com suporte em: Biblioteca de Classes Portátil

.NET para aplicativos da Windows Store

Com suporte em: Windows 8

.NET para aplicativos do Windows Phone

Com suporte em: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft