Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

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

 
clsCompliantAlternativeM:System.Int32.Parse(System.String)

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

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

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

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

Parâmetros

s
Type: System.String

Uma cadeia de caracteres que representa o número a ser convertido. A cadeia de caracteres é interpretada usando o estilo especificado pelo style parâmetro.

style
Type: System.Globalization.NumberStyles

Uma combinação bit a bit dos valores de enumeração que indicam os elementos de estilo que podem estar presentes em s. Um valor típico para especificar é NumberStyles.Integer.

provider
Type: System.IFormatProvider

Um objeto que fornece informações de formatação específicas da cultura sobre s.

Valor Retornado

Type: System.UInt16

Um inteiro não assinado de 16 bits equivalente ao número especificado em s.

Exception Condition
ArgumentNullException

s é null.

ArgumentException

style não é um NumberStyles valor.

-ou-

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

FormatException

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

OverflowException

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

-ou-

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

O style parâmetro 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 s parâmetro para a operação de análise seja bem-sucedida. Ele deve ser uma combinação de sinalizadores de bit do NumberStyles enumeração.

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

[ws][$][sign]digits[.dígitos fracionários] [E [sinal]exponential_digits] [ws]

Elementos de colchetes ([e]) são opcionais. Se style inclui NumberStyles.AllowHexSpecifier, o s parâmetro 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 podem aparecer no início do s se style inclui o NumberStyles.AllowLeadingWhite sinalizador e pode ser exibido no final da s se style inclui o NumberStyles.AllowTrailingWhite sinalizador.

$

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

logon

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

dígitos

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

.

Um símbolo de vírgula decimal específico de cultura. Símbolo de vírgula decimal da cultura atual pode aparecer em s se style inclui o NumberStyles.AllowDecimalPoint sinalizador.

dígitos fracionários

Uma ou mais ocorrências do dígito 0-9 se style inclui o NumberStyles.AllowExponent sinalizador ou uma ou mais ocorrências do dígito 0 se não existir. Dígitos fracionários podem aparecer em s somente se style inclui o NumberStyles.AllowDecimalPoint sinalizador.

E

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

dígitos exponenciais

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

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 do NumberStyles.None estilo) sempre é analisada com êxito. A maioria dos demais NumberStyles elementos que podem estar presentes, mas não precisam estar presentes nesta cadeia de caracteres de entrada de controle de membros. A tabela a seguir indica os NumberStyles membros afetam os elementos que podem estar presentes no s.

Não compostos NumberStyles valores

Elementos permitidos em s além de dígitos

NumberStyles.None

Somente dígitos decimais.

NumberStyles.AllowDecimalPoint

O ponto decimal (.) e fractional_digits elementos. No entanto, se o estilo não inclua o NumberStyles.AllowExponent sinalizador, dígitos fracionários deve consistir em apenas um ou mais dígitos 0; caso contrário, um OverflowException é lançada.

NumberStyles.AllowExponent

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

NumberStyles.AllowLeadingWhite

O ws elemento no início de s.

NumberStyles.AllowTrailingWhite

O ws elemento ao final da s.

NumberStyles.AllowLeadingSign

Um sinal antes dígitos.

NumberStyles.AllowTrailingSign

Um sinal após dígitos.

NumberStyles.AllowParentheses

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

NumberStyles.AllowThousands

O separador de grupo (,) elemento.

NumberStyles.AllowCurrencySymbol

A moeda ($) elemento.

Se o NumberStyles.AllowHexSpecifier sinalizador for usado, s deve ser um valor hexadecimal. Os dígitos hexadecimais válidos são 0 a 9, à f e A-F. Um prefixo, como "0x", não é suportado e faz com que a operação de análise falhar. Os únicos outros sinalizadores que podem ser combinados com NumberStyles.AllowHexSpecifier são NumberStyles.AllowLeadingWhite e NumberStyles.AllowTrailingWhite. (O NumberStyles enumeração inclui um estilo de número composto, NumberStyles.HexNumber, que inclui ambos os sinalizadores de espaço em branco.)

System_CAPS_noteObservação

Se o s parâmetro é a representação de 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 com que a operação de análise lançar uma exceção.

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

  • Você pode passar o valor real NumberFormatInfo objeto que fornece informações de formatação. (Sua implementação de GetFormat retorna apenas ele próprio.)

  • Você pode passar uma CultureInfo objeto que especifica a cultura cuja formatação deve ser usada. Seu NumberFormat propriedade fornece informações de formatação.

  • Você pode passar um personalizado IFormatProvider implementação. Seu GetFormat método deve instanciar e retornar o NumberFormatInfo objeto que fornece informações de formatação.

Se provider for null, o NumberFormatInfo do objeto para a cultura atual é usada.

O exemplo a seguir usa o Parse(String, NumberStyles, IFormatProvider) método para converter várias representações de cadeia de caracteres de números em valores inteiros 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.

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1
Retornar ao início
Mostrar: