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
- Наследование
- Атрибуты
Поля
AllowBinarySpecifier | 1024 | Указывает, что числовая строка представляет двоичное значение. Допустимые двоичные значения включают числовые цифры 0 и 1. Строки, проанализированные с помощью этого стиля, не используют префикс; |
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) возвращает значение |
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) возвращает значение |
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
флагов.
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'.
Комментарии
Перечисление 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) |