NumberStyles Énumération

Définition

Détermine les styles autorisés dans les arguments de chaîne numérique passés aux méthodes Parse et TryParse des types numériques intégraux et à virgule flottante.

Cette énumération a un attribut FlagsAttribute qui permet une combinaison au niveau du bit de ses valeurs membres.

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
Héritage
NumberStyles
Attributs

Champs

AllowCurrencySymbol 256

Indique que la chaîne numérique peut contenir un symbole monétaire. Les symboles monétaires valides sont déterminés par la propriété CurrencySymbol.

AllowDecimalPoint 32

Indique que la chaîne numérique peut avoir une virgule décimale. Si la valeur NumberStyles inclut l’indicateur AllowCurrencySymbol et que la chaîne analysée inclut un symbole monétaire, le caractère de séparation décimale est déterminé par la propriété CurrencyDecimalSeparator. Sinon, le caractère de séparateur décimal est déterminé par la propriété NumberDecimalSeparator.

AllowExponent 128

Indique que la chaîne numérique peut être écrite en notation exponentielle. L’indicateur AllowExponent permet à la chaîne analysée de contenir un exposant qui commence par le caractère « E » ou « e » et d’être suivie par un positif facultatif ou un signe négatif et un entier. En d’autres termes, il analyse correctement des chaînes au format nnn E xx, nnn E+xx et nnn E-xx. Il n’autorise pas un séparateur décimal ou un signe dans la mantisse ; pour autoriser ces éléments dans la chaîne à analyser, utilisez les indicateurs AllowDecimalPoint et AllowLeadingSign, ou utilisez un style composite qui inclut ces indicateurs individuels.

AllowHexSpecifier 512

Indique que la chaîne numérique représente une valeur hexadécimale. Les valeurs hexadécimales valides incluent les chiffres 0-9 et les chiffres hexadécimaux A-F et a-f. Les chaînes analysées à l’aide de ce style ne peuvent pas avoir pour préfixe « 0x » ou « &h ». Une chaîne qui est analysée avec le style AllowHexSpecifier sera toujours interprétée comme une valeur hexadécimale. Les seuls indicateurs pouvant être combinés avec AllowHexSpecifier sont AllowLeadingWhite et AllowTrailingWhite. L’énumération NumberStyles inclut un style composite, HexNumber, qui est composé de ces trois indicateurs.

AllowLeadingSign 4

Indique que la chaîne numérique peut avoir un signe de début. Les caractères de signe de début valides sont déterminés par les propriétés PositiveSign et NegativeSign.

AllowLeadingWhite 1

Indique que des espaces blancs de début peuvent être présents dans la chaîne analysée. Les espaces valides ont les valeurs Unicode U+0009, U+000A, U+000B, U+000C, U+000D et U+0020. Notez qu’il s’agit d’un sous-ensemble des caractères pour lesquels la méthode IsWhiteSpace(Char) retourne true.

AllowParentheses 16

Indique que la chaîne numérique peut avoir une paire de parenthèses englobant le nombre. Les parenthèses indiquent que la chaîne à analyser représente une nombre négatif.

AllowThousands 64

Indique que la chaîne numérique peut avoir des séparateurs de groupes, tels que des symboles qui séparent les centaines des milliers. Si la valeur NumberStyles inclut l’indicateur AllowCurrencySymbol et que la chaîne à analyser inclut un symbole monétaire, le caractère de séparation des groupes valide est déterminé par la propriété CurrencyGroupSeparator, et le nombre de chiffres dans chaque groupe est déterminé par la propriété CurrencyGroupSizes. Sinon, le caractères de séparation de groupes valides est déterminé par la propriété NumberGroupSeparator, et le nombre de chiffres dans chaque groupe est déterminé par la propriété NumberGroupSizes.

AllowTrailingSign 8

Indique que la chaîne numérique peut avoir un signe de fin. Les caractères de signe de fin valides sont déterminés par les propriétés PositiveSign et NegativeSign.

AllowTrailingWhite 2

Indique que des espaces blancs de fin peuvent être présents dans la chaîne analysée. Les espaces valides ont les valeurs Unicode U+0009, U+000A, U+000B, U+000C, U+000D et U+0020. Notez qu’il s’agit d’un sous-ensemble des caractères pour lesquels la méthode IsWhiteSpace(Char) retourne true.

Any 511

Indique que tous les styles, à l’exception de AllowHexSpecifier, sont utilisés. Il s’agit d’un style de nombre composite.

Currency 383

Indique que tous les styles, à l’exception de AllowExponent et AllowHexSpecifier, sont utilisés. Il s’agit d’un style de nombre composite.

Float 167

Indique que les styles AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowDecimalPoint et AllowExponent sont utilisés. Il s’agit d’un style de nombre composite.

HexNumber 515

Indique que les styles AllowLeadingWhite, AllowTrailingWhite et AllowHexSpecifier sont utilisés. Il s’agit d’un style de nombre composite.

Integer 7

Indique que les styles AllowLeadingWhite, AllowTrailingWhite et AllowLeadingSign sont utilisés. Il s’agit d’un style de nombre composite.

None 0

Indique qu’aucun élément de style, tel que l’espace blanc de début ou de fin, les séparateurs de milliers ou un séparateur décimal, ne peut être présent dans la chaîne analysée. La chaîne à analyser doit uniquement être constituée de chiffres intégraux décimaux.

Number 111

Indique que les styles AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign, AllowDecimalPoint et AllowThousands sont utilisés. Il s’agit d’un style de nombre composite.

Exemples

Cet exemple montre comment analyser une chaîne en entier 32 bits à l’aide de différents NumberStyles indicateurs.

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

Remarques

L' NumberStyles énumération est constituée de deux types de valeurs d’énumération utilisées pour analyser les représentations sous forme de chaîne de valeurs numériques :

  • Indicateurs de champ individuels, qui définissent des éléments de style spécifiques (tels que des espaces blancs et des séparateurs de groupes) qui peuvent être présents dans la chaîne analysée.

  • Styles de nombres composites, qui se composent de plusieurs indicateurs de champ qui définissent les éléments de style qui peuvent être présents dans la chaîne analysée.

À l’exception de AllowHexSpecifier , les indicateurs de champ individuels dans l' NumberStyles énumération définissent les éléments de style utilisés lors de l’analyse de la représentation sous forme de chaîne d’un nombre décimal. None indique que seuls les chiffres peuvent être présents dans la chaîne analysée. Les indicateurs de champ individuels restants définissent des éléments de style qui peuvent être, mais n’ont pas besoin d’être, présents dans la représentation sous forme de chaîne d’un nombre décimal pour que l’opération d’analyse aboutisse. En revanche, l' AllowHexSpecifier indicateur indique que la chaîne à analyser est toujours interprétée comme une valeur hexadécimale. Les seuls indicateurs de champ individuels qui peuvent être utilisés avec AllowHexSpecifier sont AllowLeadingWhite et AllowTrailingWhite . L' NumberStyles énumération inclut un style de nombre composite, HexNumber , qui se compose des trois indicateurs.

Les symboles (tels que le symbole monétaire, le séparateur de groupes, le séparateur décimal et les signes positif et négatif) qui peuvent apparaître dans la chaîne à analyser sont définis par les membres de l' System.Globalization.NumberFormatInfo objet qui est passé implicitement ou explicitement à la Parse méthode. La table des membres de cette rubrique fournit une description de chaque indicateur et indique sa relation avec les NumberFormatInfo Propriétés.

Le tableau suivant répertorie les styles de nombres composites et indique les indicateurs de champ individuels qu’ils incluent. Un « 1 » dans une cellule indique que le style de nombre composite comprend le style de nombre individuel dans cette ligne. Un « 0 » indique que le style de nombre composite n’inclut pas le style de nombre individuel.

Quelconque Devise Float Integer Number 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)

S’applique à

Voir aussi