NumberStyles Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje styly povolené v argumentech číselného řetězce, které jsou předány Parse
metodám a TryParse
celočíselných typů a číselných 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
- 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; |
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 zahrnuje AllowCurrencySymbol příznak a analyzovaný řetězec obsahuje symbol měny, je znak oddělovače desetinných míst určen CurrencyDecimalSeparator vlastností . V opačném případě 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", za který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 ani znaménko v znaménku 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" ani "&h". Řetězec, který se parsuje se stylem AllowHexSpecifier , bude vždy interpretován jako šestnáctková hodnota. Jediné příznaky, které se dají 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 můžou být úvodní 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í |
AllowParentheses | 16 | Označuje, že číselný řetězec může mít jednu dvojici závorek, které ohraničují čí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 vlastností CurrencyGroupSizes . 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 znaku jsou určeny vlastnostmi PositiveSign a NegativeSign . |
AllowTrailingWhite | 2 | Označuje, že v analyzovaném řetězci mohou být 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í |
Any | 511 | Označuje, že jsou použity všechny styly kromě AllowHexSpecifier . Toto je složený styl čísla. |
BinaryNumber | 1027 | Označuje, že AllowLeadingWhitese používají styly , AllowTrailingWhitea AllowBinarySpecifier . Toto je složený styl čísla. |
Currency | 383 | Označuje, že jsou použity všechny styly kromě AllowExponent a AllowHexSpecifier . Toto je složený styl čísla. |
Float | 167 | Označuje, že se AllowLeadingWhitepoužívají styly , AllowTrailingWhiteAllowLeadingSign, AllowDecimalPoint, a AllowExponent . Toto je složený styl čísla. |
HexNumber | 515 | Označuje, že AllowLeadingWhitese používají styly , AllowTrailingWhitea AllowHexSpecifier . Toto je složený styl čísla. |
Integer | 7 | Označuje, že AllowLeadingWhitese používají styly , AllowTrailingWhitea AllowLeadingSign . Toto je složený styl čísla. |
None | 0 | Označuje, že analyzovaný řetězec neobsahuje žádné prvky stylu, například počáteční nebo koncové prázdné znaky, oddělovače tisíců nebo oddělovač desetinných míst. Řetězec, který se má analyzovat, musí obsahovat pouze celočíselné desetinné číslice. |
Number | 111 | Označuje, že se AllowLeadingWhitepoužívají styly , AllowDecimalPointAllowTrailingSignAllowTrailingWhiteAllowLeadingSign, a .AllowThousands Toto je složený styl čísla. |
Příklady
Tento příklad ukazuje, jak parsovat řetězec na 32bitové celé číslo 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:
Jednotlivé příznaky polí, které definují konkrétní prvky stylu (například prázdné znaky a oddělovače skupin), které mohou být přítomny v analyzovaného řetězci.
Složené styly čísel, které se skládají z více příznaků pole, které definují prvky stylu, které mohou být přítomny v analyzovaného řetězci.
AllowHexSpecifier
Kromě , 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ém řetězci mohou být 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 parsování 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é jednotlivé příznaky polí, které se dají použít s AllowHexSpecifier
, jsou AllowLeadingWhite
a AllowTrailingWhite
. Výčet NumberStyles obsahuje složený styl čísla , HexNumber
který 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á znaménka), které se mohou objevit v řetězci, který se má analyzovat, jsou definovány členy objektu System.Globalization.NumberFormatInfo , který je metodě předán implicitně nebo explicitně Parse
. 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 uvádí, které příznaky jednotlivých polí obsahují. "1" v buňce označuje, že styl složeného čísla zahrnuje individuální styl čísla v daném řádku. "0" znamená, že složený styl čísla neobsahuje individuální styl čísla.
Všechny | Měna | Float | Integer | Číslo | 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) |
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro