Прочитать на английском

Поделиться через


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

Определение

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

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

C#
[System.Flags]
public enum NumberStyles
C#
[System.Flags]
[System.Serializable]
public enum NumberStyles
C#
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum NumberStyles
Наследование
NumberStyles
Атрибуты

Поля

Имя Значение Описание
AllowBinarySpecifier 1024

Указывает, что числовая строка представляет двоичное значение. Допустимые двоичные значения включают числовые цифры 0 и 1. Строки, проанализированные с помощью этого стиля, не используют префикс; 0b не может использоваться. Строка, проанализированная со стилем , AllowBinarySpecifier всегда будет интерпретироваться как двоичное значение. С флагом AllowBinarySpecifier можно объединять только флаги AllowLeadingWhite и AllowTrailingWhite. Перечисление NumberStyles включает составной стиль BinaryNumber, состоящий из этих трех флагов.

AllowCurrencySymbol 256

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

AllowDecimalPoint 32

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

AllowExponent 128

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

AllowHexSpecifier 512

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

AllowLeadingSign 4

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

AllowLeadingWhite 1

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

AllowParentheses 16

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

AllowThousands 64

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

AllowTrailingSign 8

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

AllowTrailingWhite 2

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

Any 511

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

BinaryNumber 1027

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

Currency 383

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

Float 167

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

HexNumber 515

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

Integer 7

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

None 0

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

Number 111

Указывает, что используются стили AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign, AllowDecimalPoint и AllowThousands. Это стили составного числа.

Примеры

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

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

Комментарии

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

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

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

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

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

Любой Валюта Float Целое число 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
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)

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

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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