Condividi tramite


NumberStyles Enumerazione

Definizione

Determina gli stili consentiti negli argomenti di stringa numerici passati ai metodi Parse e TryParse dei tipi numerici integrali e a virgola mobile.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

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
Ereditarietà
NumberStyles
Attributi

Campi

AllowBinarySpecifier 1024

Indica che la stringa numerica rappresenta un valore binario. I valori binari validi includono le cifre numeriche 0 e 1. Le stringhe analizzate usando questo stile non usano un prefisso; 0b non può essere utilizzato. Una stringa analizzata con lo AllowBinarySpecifier stile verrà sempre interpretata come valore binario. Gli unici altri flag che possono essere combinati con AllowBinarySpecifier sono AllowLeadingWhite e AllowTrailingWhite. L'enumerazione NumberStyles include uno stile composto, BinaryNumber, costituito da tutti e tre i flag.

AllowCurrencySymbol 256

Indica che la stringa numerica può contenere un simbolo di valuta. I simboli di valuta validi sono determinati dalla proprietà CurrencySymbol.

AllowDecimalPoint 32

Indica che nella stringa numerica può essere presente un separatore decimale. Se il valore NumberStyles include il flag AllowCurrencySymbol e la stringa analizzata include un simbolo di valuta, il carattere del separatore decimale è determinato dalla proprietà CurrencyDecimalSeparator. In caso contrario, il carattere separatore dei decimali è determinato dalla proprietà NumberDecimalSeparator.

AllowExponent 128

Indica che nella stringa numerica può essere presente un simbolo di esponente. Il flag AllowExponent consente alla stringa analizzata di contenere un esponente che inizia con il carattere "E" o "e", seguito da un segno positivo o un segno negativo facoltativo e un Integer. In altre parole il flag analizza correttamente stringhe nel formato nnnExx, nnnE+xx e nnnE-xx. Non sono consentiti separatori o segni decimali nel significando o nella mantissa; per consentire l'analisi di tali elementi nella stringa, utilizzare i flag AllowDecimalPoint e AllowLeadingSign, oppure uno stile composito che includa tali flag specifici.

AllowHexSpecifier 512

Indica che la stringa numerica rappresenta un valore esadecimale. I valori esadecimali validi includono le cifre numeriche 0-9 e le cifre esadecimali A-F e a-f. Le stringhe analizzate con questo stile non possono essere precedute da "0x" o "&h". Una stringa analizzata con lo stile AllowHexSpecifier verrà sempre interpretata come valore esadecimale. Gli unici altri flag che possono essere combinati con AllowHexSpecifier sono AllowLeadingWhite e AllowTrailingWhite. L'enumerazione NumberStyles include uno stile composto, HexNumber, costituito da tutti e tre i flag.

AllowLeadingSign 4

Indica che nella stringa numerica può essere presente un segno iniziale. I caratteri validi per i segni iniziali sono determinati dalle proprietà PositiveSign e NegativeSign.

AllowLeadingWhite 1

Indica che nella stringa analizzata può essere presente un carattere di spazio iniziale. I caratteri di spazio validi sono associati ai codici Unicode U+0009, U+000A, U+000B, U+000C, U+000D e U+0020. Notare che si tratta di un sottoinsieme dei caratteri per i quali il metodo IsWhiteSpace(Char) restituisce true.

AllowParentheses 16

Indica che nella stringa numerica può essere presente una coppia di parentesi che racchiude un numero. Le parentesi indicano che la stringa da analizzare rappresenta un numero negativo.

AllowThousands 64

Indica che nella stringa numerica possono essere presenti separatori di gruppo, ad esempio simboli di separazione tra le centinaia e le migliaia. Se il NumberStyles valore include il AllowCurrencySymbol flag e la stringa da analizzare include un simbolo di valuta, il carattere separatore di gruppo valido viene determinato dalla CurrencyGroupSeparator proprietà e il numero di cifre in ogni gruppo è determinato dalla CurrencyGroupSizes proprietà . In caso contrario, il carattere separatore dei decimali valido è determinato dalla proprietà NumberGroupSeparator e il numero di cifre in ciascun gruppo dalla proprietà NumberGroupSizes.

AllowTrailingSign 8

Indica che nella stringa numerica può essere presente un segno finale. I caratteri validi per i segni finali sono determinati dalle proprietà PositiveSign e NegativeSign.

AllowTrailingWhite 2

Indica che nella stringa analizzata possono essere presenti caratteri di spazio finale. I caratteri di spazio validi sono associati ai codici Unicode U+0009, U+000A, U+000B, U+000C, U+000D e U+0020. Notare che si tratta di un sottoinsieme dei caratteri per i quali il metodo IsWhiteSpace(Char) restituisce true.

Any 511

Indica che vengono utilizzati tutti gli stili, ad eccezione di AllowHexSpecifier e AllowBinarySpecifier. Si tratta di uno stile di numero composto.

BinaryNumber 1027

Indica che vengono utilizzati gli stili AllowLeadingWhite, AllowTrailingWhite e AllowBinarySpecifier. Si tratta di uno stile di numero composto.

Currency 383

Indica che vengono utilizzati tutti gli stili, ad eccezione di AllowExponent e AllowHexSpecifier. Si tratta di uno stile di numero composto.

Float 167

Indica che vengono utilizzati gli stili AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowDecimalPoint e AllowExponent. Si tratta di uno stile di numero composto.

HexNumber 515

Indica che vengono utilizzati gli stili AllowLeadingWhite, AllowTrailingWhite e AllowHexSpecifier. Si tratta di uno stile di numero composto.

Integer 7

Indica che vengono utilizzati gli stili AllowLeadingWhite, AllowTrailingWhite e AllowLeadingSign. Si tratta di uno stile di numero composto.

None 0

Indica che nella stringa analizzata non può essere presente alcun elemento di stile, ad esempio spazio iniziale o finale, separatori delle migliaia o separatore decimale. La stringa da analizzare deve essere composta unicamente da cifre decimali integrali.

Number 111

Indica che vengono utilizzati gli stili AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign, AllowDecimalPoint e AllowThousands. Si tratta di uno stile di numero composto.

Esempio

In questo esempio viene illustrato come analizzare una stringa in un intero a 32 bit usando vari 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'.

Commenti

L'enumerazione NumberStyles è costituita da due tipi di valori di enumerazione usati per analizzare le rappresentazioni di stringa dei valori numerici:

  • Flag di campo singoli, che definiscono elementi di stile specifici ,ad esempio spazi vuoti e separatori di gruppo, che possono essere presenti nella stringa analizzata.
  • Stili numerici compositi, costituiti da più flag di campo che definiscono gli elementi di stile che possono essere presenti nella stringa analizzata.

Ad eccezione di AllowHexSpecifier, i singoli flag di campo nell'enumerazione NumberStyles definiscono gli elementi di stile utilizzati durante l'analisi della rappresentazione di stringa di un numero decimale. None indica che solo le cifre possono essere presenti nella stringa analizzata. I singoli flag di campo rimanenti definiscono gli elementi di stile che possono essere, ma non devono essere presenti nella rappresentazione di stringa di un numero decimale per l'esito positivo dell'operazione di analisi. Al contrario, il AllowHexSpecifier flag indica che la stringa da analizzare viene sempre interpretata come valore esadecimale. Gli unici flag di campo singoli che possono essere usati con AllowHexSpecifier sono AllowLeadingWhite e AllowTrailingWhite. L'enumerazione NumberStyles include uno stile numerico composito, HexNumber, costituito da tutti e tre i flag.

I simboli (ad esempio il simbolo di valuta, il separatore di gruppo, il separatore decimale e i segni positivi e negativi) che possono essere visualizzati nella stringa da analizzare vengono definiti dai membri dell'oggetto System.Globalization.NumberFormatInfo che vengono passati in modo implicito o esplicito al Parse metodo. La tabella dei membri di questo argomento fornisce una descrizione di ogni singolo flag e ne indica la relazione con NumberFormatInfo le proprietà.

Nella tabella seguente sono elencati gli stili dei numeri compositi e indica quali singoli flag di campo includono. Una "1" in una cella indica che lo stile del numero composito include il singolo stile numerico in tale riga. Un valore "0" indica che lo stile del numero composito non include il singolo stile numerico.

Qualsiasi Valuta Float Integer Number HexNumber 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)

Si applica a

Vedi anche