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 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
- 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; |
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ść |
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ść |
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.
AllowHexSpecifier
Z 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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla