NumberStyles Výčet

Definice

Určuje styly povolené v argumentech číselného řetězce, které jsou předány Parse metodám a TryParse celočíselných číselných typů a typů s plovoucí desetinnou čárkou.

Tento výčet podporuje bitové kombinace hodnot jeho členů.

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
Dědičnost
NumberStyles
Atributy

Pole

AllowBinarySpecifier 1024

Označuje, že číselný řetězec představuje binární hodnotu. Platné binární hodnoty zahrnují číselné číslice 0 a 1. Řetězce, které jsou analyzovány pomocí tohoto stylu nepoužívají předponu; 0b nelze použít. Řetězec, který je parsován se stylem AllowBinarySpecifier , bude vždy interpretován jako binární hodnota. Jedinými příznaky, které je možné kombinovat s AllowBinarySpecifier , jsou AllowLeadingWhite a AllowTrailingWhite. Výčet NumberStyles obsahuje složený styl , BinaryNumberkterý se skládá z těchto tří příznaků.

AllowCurrencySymbol 256

Označuje, že číselný řetězec může obsahovat symbol měny. Platné symboly měny jsou určeny CurrencySymbol vlastností.

AllowDecimalPoint 32

Označuje, že číselný řetězec může mít desetinnou čárku. NumberStyles Pokud hodnota obsahuje AllowCurrencySymbol příznak a analyzovaný řetězec obsahuje symbol měny, je oddělovač desetinných míst určen CurrencyDecimalSeparator vlastností. Jinak je znak oddělovače desetinných míst určen NumberDecimalSeparator vlastností.

AllowExponent 128

Označuje, že číselný řetězec může být v exponenciálním zápisu. Příznak AllowExponent umožňuje, aby analyzovaný řetězec obsahoval exponent, který začíná znakem "E" nebo "e" a za ním následuje volitelné kladné nebo záporné znaménko a celé číslo. Jinými slovy úspěšně parsuje řetězce ve formátu nnnExx, nnnE+xx a nnnE-xx. Nepovoluje oddělovač desetinných míst nebo znaménko v significand nebo mantissa; Pokud chcete povolit parsování těchto prvků v řetězci, použijte AllowDecimalPoint příznaky a AllowLeadingSign nebo použijte složený styl, který obsahuje tyto jednotlivé příznaky.

AllowHexSpecifier 512

Označuje, že číselný řetězec představuje šestnáctkovou hodnotu. Platné šestnáctkové hodnoty zahrnují číselné číslice 0-9 a šestnáctkové číslice A-F a a-f. Řetězce, které jsou analyzovány pomocí tohoto stylu, nemohou mít předponu "0x" nebo "&h". Řetězec, který je parsován se stylem AllowHexSpecifier , bude vždy interpretován jako šestnáctková hodnota. Jedinými příznaky, které je možné kombinovat s AllowHexSpecifier , jsou AllowLeadingWhite a AllowTrailingWhite. Výčet NumberStyles obsahuje složený styl , HexNumberkterý se skládá z těchto tří příznaků.

AllowLeadingSign 4

Označuje, že číselný řetězec může mít počáteční znaménko. Platné počáteční znaky jsou určeny vlastnostmi PositiveSign a NegativeSign .

AllowLeadingWhite 1

Označuje, že v analyzovaném řetězci se můžou vyskytovat počáteční prázdné znaky. Platné prázdné znaky mají hodnoty Unicode U+0009, U+000A, U+000B, U+000C, U+000D a U+0020. Všimněte si, že se jedná o podmnožinu znaků, pro které IsWhiteSpace(Char) metoda vrátí true.

AllowParentheses 16

Označuje, že číselný řetězec může mít jednu dvojici závorek ohraničující číslo. Závorky označují, že řetězec, který se má analyzovat, představuje záporné číslo.

AllowThousands 64

Označuje, že číselný řetězec může mít oddělovače skupin, například symboly, které oddělují stovky od tisíců. NumberStyles Pokud hodnota obsahuje AllowCurrencySymbol příznak a řetězec, který se má analyzovat, obsahuje symbol měny, je platný znak oddělovače skupin určen CurrencyGroupSeparator vlastností a počet číslic v každé skupině je určen CurrencyGroupSizes vlastností. V opačném případě je platný znak oddělovače skupin určen NumberGroupSeparator vlastností a počet číslic v každé skupině je určen NumberGroupSizes vlastností.

AllowTrailingSign 8

Označuje, že číselný řetězec může mít koncové znaménko. Platné znaky koncového znaménka jsou určeny vlastnostmi PositiveSign a NegativeSign .

AllowTrailingWhite 2

Označuje, že v analyzovaném řetězci se můžou vyskytovat koncové prázdné znaky. Platné prázdné znaky mají hodnoty Unicode U+0009, U+000A, U+000B, U+000C, U+000D a U+0020. Všimněte si, že se jedná o podmnožinu znaků, pro které IsWhiteSpace(Char) metoda vrátí true.

Any 511

Označuje, že se používají všechny styly s výjimkou AllowHexSpecifier a AllowBinarySpecifier . Jedná se o složený styl čísla.

BinaryNumber 1027

Označuje, že AllowLeadingWhitese používají styly , AllowTrailingWhitea AllowBinarySpecifier . Jedná se o složený styl čísla.

Currency 383

Označuje, že se používají všechny styly s výjimkou AllowExponent a AllowHexSpecifier . Jedná se o složený styl čísla.

Float 167

Označuje, že AllowLeadingWhitese používají styly , AllowTrailingWhiteAllowLeadingSign, AllowDecimalPointa AllowExponent . Jedná se o složený styl čísla.

HexNumber 515

Označuje, že AllowLeadingWhitese používají styly , AllowTrailingWhitea AllowHexSpecifier . Jedná se o složený styl čísla.

Integer 7

Označuje, že AllowLeadingWhitese používají styly , AllowTrailingWhitea AllowLeadingSign . Jedná se o složený styl čísla.

None 0

Označuje, že v analyzovaného řetězci nesmí být žádné prvky stylu, jako jsou úvodní nebo koncové prázdné znaky, oddělovače tisíců nebo oddělovač desetinných míst. Řetězec, který se má analyzovat, se musí skládat pouze z integrálních desetinných číslic.

Number 111

Označuje, že AllowLeadingWhitese používají styly , AllowTrailingWhiteAllowLeadingSign, AllowTrailingSign, AllowDecimalPointa AllowThousands . Jedná se o složený styl čísla.

Příklady

Tento příklad ukazuje, jak parsovat řetězec do 32bitového celého čísla pomocí různých NumberStyles příznaků.

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

Poznámky

Výčet NumberStyles se skládá ze dvou druhů hodnot výčtu, které se používají k analýze řetězcových reprezentací číselných hodnot:

  • Příznaky jednotlivých polí, které definují konkrétní prvky stylu (například prázdné znaky a oddělovače skupin), které se můžou vyskytovat v analyzovaného řetězci.
  • Složené styly čísel, které se skládají z více příznaků polí, které definují prvky stylu, které mohou být přítomné v analyzovaného řetězci.

AllowHexSpecifierKromě , jednotlivé příznaky pole ve výčtu NumberStyles definují prvky stylu, které se používají při analýze řetězcové reprezentace desetinného čísla. None označuje, že v analyzovaného řetězci mohou být přítomny pouze číslice. Zbývající příznaky jednotlivých polí definují prvky stylu, které mohou být, ale nemusí být, přítomny v řetězcovém vyjádření desetinného čísla, aby operace parse byla úspěšná. Naproti tomu příznak označuje, že řetězec, AllowHexSpecifier který se má analyzovat, je vždy interpretován jako šestnáctková hodnota. Jediné příznaky jednotlivých polí, které se dají použít s AllowHexSpecifier , jsou AllowLeadingWhite a AllowTrailingWhite. Výčet NumberStyles obsahuje složený styl čísla , HexNumberkterý se skládá ze všech tří příznaků.

Symboly (například symbol měny, oddělovač skupin, oddělovač desetinných míst a kladné a záporné znaky), které se můžou objevit v řetězci, který se má analyzovat, jsou definovány členy objektu System.Globalization.NumberFormatInfo , který je předán buď implicitně, nebo explicitně Parse metodě. Tabulka členů v tomto tématu obsahuje popis každého jednotlivého příznaku a označuje jeho vztah k vlastnostem NumberFormatInfo .

Následující tabulka uvádí složené styly čísel a určuje, které příznaky jednotlivých polí obsahují. "1" v buňce označuje, že styl složeného čísla obsahuje individuální styl čísla v daném řádku. "0" označuje, že styl složeného čísla neobsahuje individuální styl čísla.

Všechny Měna Float Integer Číslo Šestnáctkové číslo 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)

Platí pro

Viz také