NumberStyles Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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; |
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 |
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 |
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 , AllowHexSpecifier
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 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) |