NumberStyles Перечисление

Определение

Определяет стили, разрешенные в числовых строковых аргументах, передаваемых в методы Parse и TryParse целочисленных и числовых типов с плавающей запятой.

Это перечисление поддерживает побитовую комбинацию значений его членов.

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
Наследование
NumberStyles
Атрибуты

Поля

Имя Значение Описание
None 0

Указывает, что элементы стиля, такие как начальный или конечный пробел, разделители тысяч или десятичный разделитель, могут присутствовать в строке синтаксического анализа. Строка для синтаксического анализа должна состоять только из целочисленных десятичных цифр.

AllowLeadingWhite 1

Указывает, что в строке синтаксического анализа могут присутствовать ведущие символы пробелов. Допустимые символы пробелов имеют значения Юникода U+0009, U+000A, U+000B, U+000C, U+000D и U+0020. Обратите внимание, что это подмножество символов, для которых IsWhiteSpace(Char) возвращается trueметод.

AllowTrailingWhite 2

Указывает, что в строке синтаксического анализа могут присутствовать конечные символы пробела. Допустимые символы пробелов имеют значения Юникода U+0009, U+000A, U+000B, U+000C, U+000D и U+0020. Обратите внимание, что это подмножество символов, для которых IsWhiteSpace(Char) возвращается trueметод.

AllowLeadingSign 4

Указывает, что числовая строка может иметь ведущий знак. Допустимые символы ведущих знаков определяются свойствами и NegativeSign свойствамиPositiveSign.

Integer 7

Указывает, что AllowLeadingWhiteAllowTrailingWhiteиспользуются стили и AllowLeadingSign стили. Это составной стиль чисел.

AllowTrailingSign 8

Указывает, что числовая строка может иметь конечный знак. Допустимые конечные знаки определяются свойствами и NegativeSign свойствамиPositiveSign.

AllowParentheses 16

Указывает, что числовая строка может иметь одну пару круглых скобок, заключающих число. Скобки указывают на то, что строка, которую нужно проанализировать, представляет отрицательное число.

AllowDecimalPoint 32

Указывает, что числовая строка может иметь десятичную точку. NumberStyles Если значение включает AllowCurrencySymbol флаг и строку синтаксического анализа, то символ разделителя десятичного разряда определяется свойствомCurrencyDecimalSeparator. В противном случае десятичный разделитель определяется свойством NumberDecimalSeparator .

AllowThousands 64

Указывает, что числовая строка может иметь разделители групп, например символы, которые отделяют сотни от тысяч. NumberStyles Если значение включает AllowCurrencySymbol флаг и строку для синтаксического анализа включает символ валюты, допустимый символ разделителя групп определяется свойством, а число цифр в каждой группе определяется CurrencyGroupSeparator свойствомCurrencyGroupSizes. В противном случае допустимый символ разделителя групп определяется NumberGroupSeparator свойством, а число цифр в каждой группе определяется свойством NumberGroupSizes .

Number 111

Указывает, что AllowLeadingWhiteиспользуются стили , , AllowThousandsAllowTrailingWhiteAllowLeadingSignAllowTrailingSignAllowDecimalPointи , Это составной стиль чисел.

AllowExponent 128

Указывает, что числовая строка может находиться в экспоненциальной нотации. Флаг AllowExponent позволяет синтаксическому анализу содержать экспонент, начинающийся с символа E или e, за которым следует необязательный положительный или отрицательный знак и целое число. Другими словами, он успешно анализирует строки в форме nnnExx, nnnE+xx и nnnE-xx. Он не разрешает десятичный разделитель или вход в significand или mantissa; Чтобы разрешить анализ этих элементов в строке, использовать их и AllowLeadingSign флаги или использовать AllowDecimalPoint составной стиль, включающий эти отдельные флаги.

Float 167

Указывает, что AllowLeadingWhiteиспользуются стили , AllowTrailingWhiteи AllowExponentAllowLeadingSignAllowDecimalPoint,. Это составной стиль чисел.

AllowCurrencySymbol 256

Указывает, что числовая строка может содержать символ валюты. Допустимые символы валюты определяются свойством CurrencySymbol .

Currency 383

Указывает, что все стили, кроме AllowExponent и AllowHexSpecifier используются. Это составной стиль чисел.

Any 511

Указывает, что все стили, кроме AllowHexSpecifier и AllowBinarySpecifier используются. Это составной стиль чисел.

AllowHexSpecifier 512

Указывает, что числовая строка представляет шестнадцатеричное значение. Допустимые шестнадцатеричные значения включают числовые цифры 0-9 и шестнадцатеричные цифры A-F и a-f. Строки, которые анализируются с помощью этого стиля, нельзя префиксировать с "0x" или "&h". Строка, проанализированная с AllowHexSpecifier стилем, всегда будет интерпретирована как шестнадцатеричное значение. Единственными флагами, с которыми можно сочетать AllowHexSpecifier , являются AllowLeadingWhite и AllowTrailingWhite. Перечисление NumberStyles включает составной стиль, HexNumberсостоящий из этих трех флагов.

HexNumber 515

Указывает, что AllowLeadingWhiteAllowTrailingWhiteиспользуются стили и AllowHexSpecifier стили. Это составной стиль чисел.

Примеры

В этом примере показано, как проанализировать строку в 32-разрядное целое число с помощью различных NumberStyles флагов.

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

Комментарии

Перечисление NumberStyles состоит из двух типов значений перечисления, которые используются для анализа строковых представлений числовых значений:

  • Отдельные флаги полей, определяющие определенные элементы стиля (например, разделители пробелов и групп), которые могут присутствовать в строке синтаксического анализа.
  • Составные стили чисел, состоящие из нескольких флагов полей, определяющих элементы стиля, которые могут присутствовать в проанализированной строке.

AllowHexSpecifierКроме того, отдельные флаги полей в NumberStyles перечислении определяют элементы стиля, используемые при анализе строкового представления десятичного числа. None указывает, что в синтаксическом анализе могут присутствовать только цифры. Остальные отдельные флаги полей определяют элементы стиля, которые могут быть, но не должны присутствовать в строковом представлении десятичного числа для успешной операции синтаксического анализа. В отличие от этого, флаг указывает, что строка, которую необходимо проанализировать, AllowHexSpecifier всегда интерпретируется как шестнадцатеричное значение. Единственными отдельными флагами полей, с которыми можно воспользоваться AllowHexSpecifier , являются AllowLeadingWhite и AllowTrailingWhite. Перечисление NumberStyles включает составной стиль чисел, HexNumberсостоящий из всех трех флагов.

Символы (например, символ валюты, разделитель групп, десятичный разделитель и положительные и отрицательные знаки), которые могут отображаться в строке для синтаксического анализа, определяются элементами System.Globalization.NumberFormatInfo объекта, передаваемого неявно или явно в Parse метод. Таблица членов в этом разделе содержит описание каждого отдельного флага и указывает на его связь со NumberFormatInfo свойствами.

В следующей таблице перечислены стили составных чисел и указываются, какие отдельные флаги полей они включают. Значение "1" в ячейке указывает, что стиль составного числа включает отдельный стиль чисел в этой строке. Значение "0" указывает, что стиль составного числа не включает отдельный стиль чисел.

Any Валюта Число с плавающей точкой Целое число Номер Шестнадцатеричное число 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
Allow Exponent (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)

Применяется к

См. также раздел