NumberStyles Wyliczenie

Definicja

Określa style dozwolone w argumentach ciągów liczbowych, które są przekazywane do Parse metod i TryParse typów liczb 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 stosują prefiksu; 0b nie można użyć. Ciąg, który jest analizowany za pomocą AllowBinarySpecifier stylu, zawsze będzie interpretowany jako wartość binarna. Jedyne flagi, z którymi można łączyć AllowBinarySpecifier , to 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 jest określany przez NumberDecimalSeparator właściwość .

AllowExponent 128

Wskazuje, że ciąg liczbowy może być w notacji wykładniczej. Flaga AllowExponent umożliwia przeanalizowany ciąg zawierający 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 flag i AllowLeadingSign lub użyj AllowDecimalPoint stylu złożonego zawierającego te poszczególne flagi.

AllowHexSpecifier 512

Wskazuje, że ciąg liczbowy reprezentuje wartość szesnastkowa. 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, który jest analizowany za pomocą AllowHexSpecifier stylu, zawsze będzie interpretowany jako wartość szesnastkowa. Jedyne flagi, z którymi można łączyć AllowHexSpecifier , to 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. Należy pamiętać, że jest to podzestaw znaków, dla których IsWhiteSpace(Char) metoda zwraca truewartość .

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 mieć separatory grup, takie jak symbole oddzielające setki od tysięcy. NumberStyles Jeśli wartość zawiera flagę i ciąg do AllowCurrencySymbol przeanalizowania 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. Należy pamiętać, że jest to podzestaw znaków, dla których IsWhiteSpace(Char) metoda zwraca truewartość .

Any 511

Wskazuje, że wszystkie style z wyjątkiem AllowHexSpecifier i AllowBinarySpecifier są używane. 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 AllowLeadingWhitesą używane style , AllowTrailingWhite, AllowLeadingSign, AllowDecimalPointi 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 cyfr dziesiętnych całkowitych.

Number 111

Wskazuje, że AllowLeadingWhitesą używane style , AllowTrailingWhite, AllowLeadingSignAllowTrailingSign, , AllowDecimalPointi 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 odstępy i separatory grup), które mogą być obecne w przeanalizowanym ciągu.
  • Style liczb złożonych, które składają się z wielu flag pól definiujących elementy stylu, które mogą być obecne w przeanalizowanym ciągu.

Z wyjątkiem , AllowHexSpecifierposzczegó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 w przeanalizowanym ciągu mogą znajdować się tylko cyfry. Pozostałe pojedyncze 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. Natomiast flaga AllowHexSpecifier wskazuje, że ciąg, który ma być analizowany, jest zawsze interpretowany jako wartość szesnastkowa. Jedynymi pojedynczymi flagami pól, których można używać AllowHexSpecifier , są AllowLeadingWhite i AllowTrailingWhite. Wyliczenie NumberStyles zawiera styl liczb złożony, 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ą pojawić 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 pojedynczej flagi i wskazuje jej relację z NumberFormatInfo właściwościami.

Poniższa tabela zawiera listę stylów liczb złożonych i wskazuje, które poszczególne flagi pól zawierają. Wartość "1" w komórce wskazuje, że styl liczby złożonej zawiera styl pojedynczej liczby w tym wierszu. Wartość "0" wskazuje, że styl liczby złożonej nie zawiera stylu pojedynczej liczby.

Dowolne Waluta Float Liczba całkowita Liczba Szesnastkowy numer BinaryNumber
AllowBinarySpecifier (0x0400) 0 0 0 0 0 0 1
AllowHexSpecifier (0x0200) 0 0 0 0 0 1 0
AllowCurrencySymbol (0x0100) 1 1 0 0 0 0 0
AllowExponent (0x0080) 1 0 1 0 0 0 0
AllowThousands (0x0040) 1 1 0 0 1 0 0
AllowDecimalPoint (0x0020) 1 1 1 0 1 0 0
AllowParentheses (0x0010) 1 1 0 0 0 0 0
AllowTrailingSign (0x0008) 1 1 0 0 1 0 0
AllowLeadingSign (0x0004) 1 1 1 1 1 0 0
AllowTrailingWhite (0x0002) 1 1 1 1 1 1 1
AllowLeadingWhite (0x0001) 1 1 1 1 1 1 1
(0x1ff) (0x17f) (0x0a7) (0x007) (0x06f) (0x203) (0x403)

Dotyczy

Zobacz też