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
- Наследование
- Атрибуты
Поля
| Имя | Значение | Описание |
|---|---|---|
| None | 0 | Указывает, что элементы стиля, такие как начальный или конечный пробел, разделители тысяч или десятичный разделитель, могут присутствовать в строке синтаксического анализа. Строка для синтаксического анализа должна состоять только из целочисленных десятичных цифр. |
| AllowLeadingWhite | 1 | Указывает, что в строке синтаксического анализа могут присутствовать ведущие символы пробелов. Допустимые символы пробелов имеют значения Юникода U+0009, U+000A, U+000B, U+000C, U+000D и U+0020. Обратите внимание, что это подмножество символов, для которых IsWhiteSpace(Char) возвращается |
| AllowTrailingWhite | 2 | Указывает, что в строке синтаксического анализа могут присутствовать конечные символы пробела. Допустимые символы пробелов имеют значения Юникода U+0009, U+000A, U+000B, U+000C, U+000D и U+0020. Обратите внимание, что это подмножество символов, для которых IsWhiteSpace(Char) возвращается |
| 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) |