NumberStyles Enumeração

Definição

Determina os estilos permitidos em argumentos de cadeia de caracteres numéricos que são passados para os métodos Parse e TryParse dos tipos numéricos integrais e de ponto flutuante.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

public enum class NumberStyles
[System.Flags]
public enum NumberStyles
[System.Flags]
[System.Serializable]
public enum NumberStyles
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum NumberStyles
[<System.Flags>]
type NumberStyles = 
[<System.Flags>]
[<System.Serializable>]
type NumberStyles = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NumberStyles = 
Public Enum NumberStyles
Herança
NumberStyles
Atributos

Campos

AllowCurrencySymbol 256

Indica que a cadeia de caracteres numérica pode conter um símbolo de moeda. Os símbolos de moeda válidos são determinados pela propriedade CurrencySymbol.

AllowDecimalPoint 32

Indica que a cadeia de caracteres numérica pode ter um ponto decimal. Se o valor NumberStyles incluir o sinalizador AllowCurrencySymbol e a cadeia de caracteres analisada incluir um símbolo de moeda, o caractere separador decimal será determinado pela propriedade CurrencyDecimalSeparator. Caso contrário, o caractere separador decimal será determinado pela propriedade NumberDecimalSeparator.

AllowExponent 128

Indica que a cadeia de caracteres numérica pode ser em notação exponencial. O sinalizador AllowExponent permite que a cadeia de caracteres analisada contenha um expoente que começa com o caractere "E" ou "e" e que é seguido por um sinal positivo ou negativo opcional e um inteiro. Em outras palavras, ele analisa cadeias de caracteres com êxito no formato nnn E xx, nnn E+xx e nnn E-xx. Ele não permite um separador decimal ou sinal no significando ou na mantissa. Para permitir que esses elementos na cadeia de caracteres sejam analisados, use os sinalizadores AllowDecimalPoint e AllowLeadingSign ou use um estilo composto que inclua esses sinalizadores individuais.

AllowHexSpecifier 512

Indica que a cadeia de caracteres numérica representa um valor hexadecimal. Os valores hexadecimais válidos incluem os dígitos numéricos 0-9 e os dígitos hexadecimais A-F e a-f. Cadeias de caracteres que são analisadas usando esse estilo não podem ser prefixadas com "0x" ou "&h". Uma cadeia de caracteres analisada com o estilo AllowHexSpecifier sempre será interpretada como um valor hexadecimal. Os únicos sinalizadores que podem ser combinados com AllowHexSpecifier são AllowLeadingWhite e AllowTrailingWhite. A enumeração NumberStyles inclui um estilo composto, HexNumber, que consiste nesses três sinalizadores.

AllowLeadingSign 4

Indica que a cadeia de caracteres numérica pode ter um sinal à esquerda. Os caracteres de sinal à esquerda válidos são determinados pelas propriedades PositiveSign e NegativeSign.

AllowLeadingWhite 1

Indica que os caracteres de espaço em branco à esquerda podem estar presentes na cadeia de caracteres analisada. Os caracteres de espaço válidos devem ter os valores Unicode U+0009, U+000A, U+000B, U+000C, U+000D e U+0020. Observe que esse é um subconjunto de caracteres para o qual o método IsWhiteSpace(Char) retorna true.

AllowParentheses 16

Indica que a cadeia de caracteres numérica pode ter um par de parênteses que incluem o número. Os parênteses indicam que a cadeia de caracteres a ser analisada representa um número negativo.

AllowThousands 64

Indica que a cadeia de caracteres numérica pode ter separadores de grupo, como símbolos que separam centenas de milhares. Se o valor NumberStyles incluir o sinalizador AllowCurrencySymbol e a cadeia de caracteres a ser analisada incluir um símbolo de moeda, o caractere separador de grupo válido será determinado pela propriedade CurrencyGroupSeparator e o número de dígitos em cada grupo será determinado pela propriedade CurrencyGroupSizes. Caso contrário, o caractere separador de grupo válido será determinado pela propriedade NumberGroupSeparator e o número de dígitos em cada grupo será determinado pela propriedade NumberGroupSizes.

AllowTrailingSign 8

Indica que a cadeia de caracteres numérica pode ter um sinal à direita. Os caracteres de sinal à direita válidos são determinados pelas propriedades PositiveSign e NegativeSign.

AllowTrailingWhite 2

Indica que os caracteres de espaço em branco à direita podem estar presentes na cadeia de caracteres analisada. Os caracteres de espaço válidos devem ter os valores Unicode U+0009, U+000A, U+000B, U+000C, U+000D e U+0020. Observe que esse é um subconjunto de caracteres para o qual o método IsWhiteSpace(Char) retorna true.

Any 511

Indica que todos os estilos, exceto AllowHexSpecifier, são usados. Esse é um estilo de número composto.

Currency 383

Indica que todos os estilos, exceto AllowExponent e AllowHexSpecifier, são usados. Esse é um estilo de número composto.

Float 167

Indica que os estilos AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowDecimalPoint e AllowExponent são usados. Esse é um estilo de número composto.

HexNumber 515

Indica que os estilos AllowLeadingWhite, AllowTrailingWhite e AllowHexSpecifier são usados. Esse é um estilo de número composto.

Integer 7

Indica que os estilos AllowLeadingWhite, AllowTrailingWhite e AllowLeadingSign são usados. Esse é um estilo de número composto.

None 0

Indica que não é possível haver nenhum elemento de estilo, como espaço em branco à direita ou à esquerda, separadores de milhar ou separadores decimais, presente na cadeia de caracteres analisada. A cadeia de caracteres a ser analisada deve conter apenas dígitos decimais integrais.

Number 111

Indica que os estilos AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign, AllowDecimalPoint e AllowThousands são usados. Esse é um estilo de número composto.

Exemplos

Este exemplo mostra como analisar uma cadeia de caracteres em um inteiro de 32 bits usando vários NumberStyles sinalizadores.

using namespace System;
using namespace System::Text;
using namespace System::Globalization;


int main()
{
    // Parse the string as a hex value and display the
    // value as a decimal.
    String^ numberString = "A";
    int stringValue = Int32::Parse(numberString, NumberStyles::HexNumber);
    Console::WriteLine("{0} in hex = {1} in decimal.",
        numberString, stringValue);

    // Parse the string, allowing a leading sign, and ignoring
    // leading and trailing white spaces.
    numberString = "    -45   ";
    stringValue =Int32::Parse(numberString, NumberStyles::AllowLeadingSign |
        NumberStyles::AllowLeadingWhite | NumberStyles::AllowTrailingWhite);
    Console::WriteLine("'{0}' parsed to an int is '{1}'.",
        numberString, stringValue);

    // Parse the string, allowing parentheses, and ignoring
    // leading and trailing white spaces.
    numberString = "    (37)   ";
    stringValue = Int32::Parse(numberString, NumberStyles::AllowParentheses |
        NumberStyles::AllowLeadingSign | NumberStyles::AllowLeadingWhite |
        NumberStyles::AllowTrailingWhite);

    Console::WriteLine("'{0}' parsed to an int is '{1}'.",
        numberString, stringValue);
}

// This code produces the following output.
//
// A in hex = 10 in decimal.
// '    -45   ' parsed to an int is '-45'.
// '    (37)   ' parsed to an int is '-37'.
using System;
using System.Text;
using System.Globalization;

public sealed class App
{
    static void Main()
    {
        // Parse the string as a hex value and display the value as a decimal.
        String num = "A";
        int val = int.Parse(num, NumberStyles.HexNumber);
        Console.WriteLine("{0} in hex = {1} in decimal.", num, val);

        // Parse the string, allowing a leading sign, and ignoring leading and trailing white spaces.
        num = "    -45   ";
        val = int.Parse(num, NumberStyles.AllowLeadingSign |
            NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite);
        Console.WriteLine("'{0}' parsed to an int is '{1}'.", num, val);

        // Parse the string, allowing parentheses, and ignoring leading and trailing white spaces.
        num = "    (37)   ";
        val = int.Parse(num, NumberStyles.AllowParentheses | NumberStyles.AllowLeadingSign |                         NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite);
        Console.WriteLine("'{0}' parsed to an int is '{1}'.", num, val);
    }
}

// This code produces the following output.
//
// A in hex = 10 in decimal.
// '    -45   ' parsed to an int is '-45'.
// '    (37)   ' parsed to an int is '-37'.
Imports System.Globalization
Imports System.Text

Public Module Example
   Public Sub Main() 
      ' Parse the string as a hex value and display the value as a decimal.
      Dim num As String = "A"
      Dim val As Integer = Int32.Parse(num, NumberStyles.HexNumber)
      Console.WriteLine("{0} in hex = {1} in decimal.", num, val)

      ' Parse the string, allowing a leading sign, and ignoring leading and trailing white spaces.
      num = "    -45   "
      val = Integer.Parse(num, NumberStyles.AllowLeadingSign Or 
                               NumberStyles.AllowLeadingWhite Or 
                               NumberStyles.AllowTrailingWhite)
      Console.WriteLine("'{0}' parsed to an integer is '{1}'.", num, val)

      ' Parse the string, allowing parentheses, and ignoring leading and trailing white spaces.
      num = "    (37)   "
      val = Integer.Parse(num, NumberStyles.AllowParentheses Or 
                               NumberStyles.AllowLeadingSign Or
                               NumberStyles.AllowLeadingWhite Or 
                               NumberStyles.AllowTrailingWhite)
      Console.WriteLine("'{0}' parsed to an integer is '{1}'.", num, val)
   End Sub
End Module
' The example displays the following output:
'       A in hex = 10 in decimal.
'       '    -45   ' parsed to an int is '-45'.
'       '    (37)   ' parsed to an int is '-37'.

Comentários

A NumberStyles enumeração consiste em dois tipos de valores de enumeração que são usados para analisar as representações de cadeia de caracteres de valores numéricos:

  • Sinalizadores de campo individuais, que definem elementos de estilo específicos (como espaço em branco e separadores de grupo) que podem estar presentes na cadeia de caracteres analisada.

  • Estilos de número composto, que consistem em vários sinalizadores de campo que definem os elementos de estilo que podem estar presentes na cadeia de caracteres analisada.

Exceto por AllowHexSpecifier, os sinalizadores de campo individuais na NumberStyles enumeração definem elementos de estilo que são usados ao analisar a representação de cadeia de caracteres de um número decimal. None indica que somente dígitos podem estar presentes na cadeia de caracteres analisada. Os sinalizadores de campo individuais restantes definem elementos de estilo que podem ser, mas não precisam estar, presentes na representação de cadeia de caracteres de um número decimal para que a operação de análise tenha êxito. Em contraste, o AllowHexSpecifier sinalizador indica que a cadeia de caracteres a ser analisada sempre é interpretada como um valor hexadecimal. Os únicos sinalizadores de campo individuais com AllowHexSpecifier os quais podem ser usados são AllowLeadingWhite e AllowTrailingWhite. A NumberStyles enumeração inclui um estilo de número composto, HexNumberque consiste nos três sinalizadores.

Os símbolos (como o símbolo de moeda, o separador de grupo, o separador decimal e os sinais positivos e negativos) que podem aparecer na cadeia de caracteres a ser analisada são definidos pelos membros do System.Globalization.NumberFormatInfo objeto que é passado implicitamente ou explicitamente para o Parse método. A tabela de membros neste tópico fornece uma descrição de cada sinalizador individual e indica sua relação com as NumberFormatInfo propriedades.

A tabela a seguir lista os estilos de número composto e indica quais sinalizadores de campo individuais eles incluem. Um "1" em uma célula indica que o estilo de número composto inclui o estilo de número individual nessa linha. Um "0" indica que o estilo de número composto não inclui o estilo de número individual.

Qualquer Moeda Float Integer Número Hexnumber
AllowHexSpecifier (0x0200) 0 0 0 0 0 1
AllowCurrencySymbol (0x0100) 1 1 0 0 0 0
AllowExponent (0x0080) 1 0 1 0 0 0
AllowThousands (0x0040) 1 1 0 0 1 0
AllowDecimalPoint (0x0020) 1 1 1 0 1 0
AllowParentheses (0x0010) 1 1 0 0 0 0
AllowTrailingSign (0x0008) 1 1 0 0 1 0
AllowLeadingSign (0x0004) 1 1 1 1 1 0
AllowTrailingWhite (0x0002) 1 1 1 1 1 1
AllowLeadingWhite (0x0001) 1 1 1 1 1 1
(0x1ff) (0x17f) (0x0a7) (0x007) (0x06f) (0x203)

Aplica-se a

Confira também