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 prend en charge 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

AllowBinarySpecifier 1024

Indique que la chaîne numérique représente une valeur binaire. Les valeurs binaires valides incluent les chiffres 0 et 1. Les chaînes analysées à l’aide de ce style n’utilisent pas de préfixe ; 0b ne peut pas être utilisé. Une chaîne analysée avec le AllowBinarySpecifier style est toujours interprétée comme une valeur binaire. Les seuls indicateurs pouvant être combinés avec AllowBinarySpecifier sont AllowLeadingWhite et AllowTrailingWhite. L’énumération NumberStyles inclut un style composite, BinaryNumber, qui est composé de ces trois indicateurs.

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 nnnExx, nnnE+xx et nnnE-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 être précédées de « 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 NumberStyles valeur inclut l’indicateur AllowCurrencySymbol et que la chaîne à analyser inclut un symbole monétaire, le caractère séparateur de groupe valide est déterminé par la CurrencyGroupSeparator propriété et le nombre de chiffres dans chaque groupe est déterminé par la CurrencyGroupSizes propriété . 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.

BinaryNumber 1027

Indique que les styles AllowLeadingWhite, AllowTrailingWhite et AllowBinarySpecifier 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 dans un 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’énumération NumberStyles se compose 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 les espaces blancs et les séparateurs de groupes) qui peuvent être présents dans la chaîne analysée.

  • Styles numériques 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’énumération NumberStyles 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 qui ne doivent pas l’être, dans la représentation sous forme de chaîne d’un nombre décimal pour que l’opération d’analyse réussisse. En revanche, l’indicateur AllowHexSpecifier 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’énumération NumberStyles inclut un style numérique composite, HexNumber, qui se compose des trois indicateurs.

Les symboles (tels que le symbole monétaire, le séparateur de groupe, le séparateur décimal et les signes positifs et négatifs) qui peuvent apparaître dans la chaîne à analyser sont définis par les membres de l’objet System.Globalization.NumberFormatInfo transmis implicitement ou explicitement à la Parse méthode . La table members de cette rubrique fournit une description de chaque indicateur individuel et indique sa relation avec les NumberFormatInfo propriétés.

Le tableau suivant répertorie les styles numériques composites et indique les indicateurs de champ individuels qu’ils incluent. Un « 1 » dans une cellule indique que le style numérique composite inclut le style de nombre individuel dans cette ligne. Un « 0 » indique que le style numérique composite n’inclut pas le style numérique 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