NumberStyles Wyliczenie

Definicja

Określa style dozwolone w argumentach ciągów liczbowych, które są przekazywane do Parse metod i TryParse typów liczbowych całkowitych i zmiennoprzecinkowych.

To wyliczenie obsługuje bitową kombinację jego wartości składowych.

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
Dziedziczenie
NumberStyles
Atrybuty

Pola

AllowBinarySpecifier 1024

Wskazuje, że ciąg liczbowy reprezentuje wartość binarną. Prawidłowe wartości binarne obejmują cyfry liczbowe 0 i 1. Ciągi analizowane przy użyciu tego stylu nie używają prefiksu; 0b nie można użyć. Ciąg analizowany ze AllowBinarySpecifier stylem będzie zawsze interpretowany jako wartość binarna. Jedynymi flagami, z którymi można się połączyć AllowBinarySpecifier , są AllowLeadingWhite i AllowTrailingWhite. Wyliczenie NumberStyles zawiera styl złożony , BinaryNumberktóry składa się z tych trzech flag.

AllowCurrencySymbol 256

Wskazuje, że ciąg liczbowy może zawierać symbol waluty. Prawidłowe symbole waluty są określane przez CurrencySymbol właściwość .

AllowDecimalPoint 32

Wskazuje, że ciąg liczbowy może mieć punkt dziesiętny. NumberStyles Jeśli wartość zawiera flagęAllowCurrencySymbol, a przeanalizowany ciąg zawiera symbol waluty, znak separatora dziesiętnego jest określany przez CurrencyDecimalSeparator właściwość . W przeciwnym razie znak separatora dziesiętnego NumberDecimalSeparator jest określany przez właściwość .

AllowExponent 128

Wskazuje, że ciąg liczbowy może znajdować się w notacji wykładniczej. Flaga AllowExponent umożliwia przeanalizowaniu ciągu zawiera wykładnik rozpoczynający się od znaku "E" lub "e", po którym następuje opcjonalny znak dodatni lub ujemny i liczba całkowita. Innymi słowy, pomyślnie analizuje ciągi w postaci nnnExx, nnnE+xx i nnnE-xx. Nie zezwala na separator dziesiętny ani znak znakowy ani mantissa; aby zezwolić na analizowanie tych elementów w ciągu, użyj AllowDecimalPoint flag i AllowLeadingSign lub użyj stylu złożonego zawierającego te poszczególne flagi.

AllowHexSpecifier 512

Wskazuje, że ciąg liczbowy reprezentuje wartość szesnastkową. Prawidłowe wartości szesnastkowe obejmują cyfry liczbowe 0–9 i cyfry szesnastkowe A-F i a-f. Ciągi analizowane przy użyciu tego stylu nie mogą być poprzedzone prefiksem "0x" lub "&h". Ciąg analizowany ze AllowHexSpecifier stylem będzie zawsze interpretowany jako wartość szesnastkowa. Jedynymi flagami, z którymi można się połączyć AllowHexSpecifier , są AllowLeadingWhite i AllowTrailingWhite. Wyliczenie NumberStyles zawiera styl złożony , HexNumberktóry składa się z tych trzech flag.

AllowLeadingSign 4

Wskazuje, że ciąg liczbowy może mieć znak wiodący. Prawidłowe znaki wiodące są określane przez PositiveSign właściwości i NegativeSign .

AllowLeadingWhite 1

Wskazuje, że wiodące znaki odstępu mogą być obecne w przeanalizowanym ciągu. Prawidłowe znaki odstępu mają wartości Unicode U+0009, U+000A, U+000B, U+000C, U+000D i U+0020. Zwróć uwagę, że jest to podzbiór znaków, dla których IsWhiteSpace(Char) metoda zwraca wartość true.

AllowParentheses 16

Wskazuje, że ciąg liczbowy może zawierać jedną parę nawiasów otaczających liczbę. Nawiasy wskazują, że ciąg, który ma zostać przeanalizowany, reprezentuje liczbę ujemną.

AllowThousands 64

Wskazuje, że ciąg liczbowy może zawierać separatory grup, takie jak symbole oddzielające setki od tysięcy. NumberStyles Jeśli wartość zawiera flagęAllowCurrencySymbol, a ciąg, który ma zostać przeanalizowany, zawiera symbol waluty, prawidłowy znak separatora grupy jest określany przez CurrencyGroupSeparator właściwość , a liczba cyfr w każdej grupie jest określana przez CurrencyGroupSizes właściwość . W przeciwnym razie prawidłowy znak separatora grupy jest określany przez NumberGroupSeparator właściwość , a liczba cyfr w każdej grupie jest określana przez NumberGroupSizes właściwość .

AllowTrailingSign 8

Wskazuje, że ciąg liczbowy może mieć znak końcowy. Prawidłowe znaki końcowe są określane przez PositiveSign właściwości i NegativeSign .

AllowTrailingWhite 2

Wskazuje, że końcowe znaki odstępu mogą być obecne w przeanalizowanym ciągu. Prawidłowe znaki odstępu mają wartości Unicode U+0009, U+000A, U+000B, U+000C, U+000D i U+0020. Zwróć uwagę, że jest to podzbiór znaków, dla których IsWhiteSpace(Char) metoda zwraca wartość true.

Any 511

Wskazuje, że są używane wszystkie style z wyjątkiem AllowHexSpecifier . Jest to styl liczby złożonej.

BinaryNumber 1027

Wskazuje, że AllowLeadingWhitesą używane style , AllowTrailingWhitei AllowBinarySpecifier . Jest to styl liczby złożonej.

Currency 383

Wskazuje, że wszystkie style z wyjątkiem AllowExponent i AllowHexSpecifier są używane. Jest to styl liczby złożonej.

Float 167

Wskazuje, że AllowLeadingWhiteużywane są style , AllowTrailingWhite, AllowLeadingSignAllowDecimalPoint, i AllowExponent . Jest to styl liczby złożonej.

HexNumber 515

Wskazuje, że AllowLeadingWhitesą używane style , AllowTrailingWhitei AllowHexSpecifier . Jest to styl liczby złożonej.

Integer 7

Wskazuje, że AllowLeadingWhitesą używane style , AllowTrailingWhitei AllowLeadingSign . Jest to styl liczby złożonej.

None 0

Wskazuje, że w przeanalizowanym ciągu nie mogą znajdować się żadne elementy stylu, takie jak wiodące lub końcowe białe znaki, separatory tysięcy lub separator dziesiętny. Ciąg, który ma być analizowany, musi składać się tylko z całkowitych cyfr dziesiętnych.

Number 111

Wskazuje, że AllowLeadingWhiteużywane są style , AllowTrailingWhite, AllowLeadingSignAllowTrailingSign, AllowDecimalPoint, i AllowThousands . Jest to styl liczby złożonej.

Przykłady

W tym przykładzie pokazano, jak przeanalizować ciąg w 32-bitową liczbę całkowitą przy użyciu różnych NumberStyles flag.

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'.

Uwagi

Wyliczenie NumberStyles składa się z dwóch rodzajów wartości wyliczenia, które są używane do analizowania reprezentacji ciągów wartości liczbowych:

  • Poszczególne flagi pól, które definiują określone elementy stylu (takie jak białe znaki i separatory grup), które mogą być obecne w przeanalizowanym ciągu.

  • Style liczb złożonych składające się z wielu flag pól definiujących elementy stylu, które mogą być obecne w przeanalizowanym ciągu.

AllowHexSpecifierZ wyjątkiem , poszczególne flagi pól w wyliczenie NumberStyles definiują elementy stylu, które są używane podczas analizowania reprezentacji ciągu liczby dziesiętnej. None wskazuje, że tylko cyfry mogą być obecne w przeanalizowanym ciągu. Pozostałe poszczególne flagi pól definiują elementy stylu, które mogą być, ale nie muszą być obecne w ciągu reprezentacji liczby dziesiętnej dla operacji analizy, aby operacja analizy zakończyła się pomyślnie. Z kolei flaga AllowHexSpecifier wskazuje, że ciąg, który ma być analizowany, jest zawsze interpretowany jako wartość szesnastkowa. Jedynymi flagami pól, których można używać AllowHexSpecifier , są AllowLeadingWhite i AllowTrailingWhite. Wyliczenie NumberStyles zawiera styl liczby złożonej, HexNumber, który składa się ze wszystkich trzech flag.

Symbole (takie jak symbol waluty, separator grupy, separator dziesiętny i znaki dodatnie i ujemne), które mogą pojawiać się w ciągu do przeanalizowania, są definiowane przez elementy członkowskie System.Globalization.NumberFormatInfo obiektu, który jest przekazywany niejawnie lub jawnie do Parse metody. Tabela elementów członkowskich w tym temacie zawiera opis każdej flagi i wskazuje jej relację z NumberFormatInfo właściwościami.

W poniższej tabeli wymieniono style liczb złożonych i wskazuje, które poszczególne flagi pól zawierają. Wyrażenie "1" w komórce wskazuje, że styl liczby złożonej zawiera styl pojedynczej liczby w tym wierszu. Wartość "0" oznacza, że styl liczby złożonej nie zawiera indywidualnego stylu liczbowego.

Dowolne Waluta Float Liczba całkowita Liczba Numer szesnastkowy
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)

Dotyczy

Zobacz też