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

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


UInt32.Parse Метод

Определение

Преобразует строковое представление числа в 32-разрядное целое число без знака.

Перегрузки

Parse(String, NumberStyles, IFormatProvider)

Преобразует строковое представление числа в указанном стиле и формате языка и региональных параметров в его 32-разрядное целое число без знака.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Преобразует представление диапазона числа в указанном стиле и формате языка и региональных параметров в его 32-разрядное целое число без знака.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Анализирует диапазон символов UTF-8 в значение.

Parse(String, IFormatProvider)

Преобразует строковое представление числа в указанном формате языка и региональных параметров в его 32-разрядное целое число без знака.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Анализирует диапазон символов в значение.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Анализирует диапазон символов UTF-8 в значение.

Parse(String)

Преобразует строковое представление числа в 32-разрядное целое число без знака.

Parse(String, NumberStyles)

Преобразует строковое представление числа в указанном стиле в 32-разрядное целое число без знака.

Parse(String, NumberStyles, IFormatProvider)

Исходный код:
UInt32.cs
Исходный код:
UInt32.cs
Исходный код:
UInt32.cs

Важно!

Этот API несовместим с CLS.

Альтернативный вариант, совместимый с CLS
System.Int64.Parse(String)

Преобразует строковое представление числа в указанном стиле и формате языка и региональных параметров в его 32-разрядное целое число без знака.

C#
[System.CLSCompliant(false)]
public static uint Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
C#
public static uint Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
C#
[System.CLSCompliant(false)]
public static uint Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);

Параметры

s
String

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

style
NumberStyles

Побитовое сочетание значений перечисления, указывающее элементы стиля, которые могут присутствовать в s. Обычное значение, указываемое, — Integer.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании, зависящее от языка и региональных параметров, о s.

Возвращаемое значение

32-разрядное целое число без знака, эквивалентное числу, указанному в s.

Реализации

Атрибуты

Исключения

style не является значением NumberStyles.

-или-

style не является сочетанием значений AllowHexSpecifier и HexNumber.

s не соответствует формату style.

s представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

-или-

s включает ненулевых, дробные цифры.

Примеры

В следующем примере используется метод Parse(String, NumberStyles, IFormatProvider) для преобразования различных строковых представлений чисел в 32-разрядные целые значения без знака.

C#
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] cultureNames= { "en-US", "fr-FR" };
      NumberStyles[] styles= { NumberStyles.Integer,
                               NumberStyles.Integer | NumberStyles.AllowDecimalPoint };
      string[] values = { "170209", "+170209.0", "+170209,0", "-103214.00",
                                 "-103214,00", "104561.1", "104561,1" };
      
      // Parse strings using each culture
      foreach (string cultureName in cultureNames)
      {
         CultureInfo ci = new CultureInfo(cultureName);
         Console.WriteLine("Parsing strings using the {0} culture", 
                           ci.DisplayName);
         // Use each style.
         foreach (NumberStyles style in styles)
         {
            Console.WriteLine("   Style: {0}", style.ToString());
            // Parse each numeric string.
            foreach (string value in values)
            {
               try {
                  Console.WriteLine("      Converted '{0}' to {1}.", value,
                                    UInt32.Parse(value, style, ci));
               }
               catch (FormatException) {
                  Console.WriteLine("      Unable to parse '{0}'.", value);
               }      
               catch (OverflowException) {
                  Console.WriteLine("      '{0}' is out of range of the UInt32 type.",
                                    value);
               }
            }
         }
      }                                    
   }
}
// The example displays the following output:
//       Parsing strings using the English (United States) culture
//          Style: Integer
//             Converted '170209' to 170209.
//             Unable to parse '+170209.0'.
//             Unable to parse '+170209,0'.
//             Unable to parse '-103214.00'.
//             Unable to parse '-103214,00'.
//             Unable to parse '104561.1'.
//             Unable to parse '104561,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '170209' to 170209.
//             Converted '+170209.0' to 170209.
//             Unable to parse '+170209,0'.
//             '-103214.00' is out of range of the UInt32 type.
//             Unable to parse '-103214,00'.
//             '104561.1' is out of range of the UInt32 type.
//             Unable to parse '104561,1'.
//       Parsing strings using the French (France) culture
//          Style: Integer
//             Converted '170209' to 170209.
//             Unable to parse '+170209.0'.
//             Unable to parse '+170209,0'.
//             Unable to parse '-103214.00'.
//             Unable to parse '-103214,00'.
//             Unable to parse '104561.1'.
//             Unable to parse '104561,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '170209' to 170209.
//             Unable to parse '+170209.0'.
//             Converted '+170209,0' to 170209.
//             Unable to parse '-103214.00'.
//             '-103214,00' is out of range of the UInt32 type.
//             Unable to parse '104561.1'.
//             '104561,1' is out of range of the UInt32 type.

Комментарии

Параметр style определяет элементы стиля (например, пробелы или символ положительного или отрицательного знака), которые разрешены в параметре s для успешной операции синтаксического анализа. Это должно быть сочетание битовых флагов из перечисления NumberStyles.

В зависимости от значения styleпараметр s может включать следующие элементы:

[ws] [$] [знак]цифры[.fractional_digits][E[ знак]exponential_digits][ws]

Элементы в квадратных скобках ([ и ]) являются необязательными. Если style включает NumberStyles.AllowHexSpecifier, параметр s может включать следующие элементы:

[ws]шестнадцатеричные[ws]

В следующей таблице описан каждый элемент.

Элемент Описание
ws Необязательный пробел. Пробел может отображаться в начале s, если style включает флаг NumberStyles.AllowLeadingWhite, и он может отображаться в конце s, если style включает флаг NumberStyles.AllowTrailingWhite.
$ Символ валюты, зависящий от языка и региональных параметров. Его положение в строке определяется свойством CurrencyPositivePattern объекта NumberFormatInfo, возвращаемого методом GetFormat параметра provider. Символ валюты может отображаться в s, если style включает флаг NumberStyles.AllowCurrencySymbol.
знак Необязательный знак. (Метод создает OverflowException, если s включает отрицательный знак и представляет ненулевое число.) Знак может отображаться в начале s, если style включает флаг NumberStyles.AllowLeadingSign, и он может отображаться в конце s, если style включает флаг NumberStyles.AllowTrailingSign. Скобки можно использовать в s, чтобы указать отрицательное значение, если style включает флаг NumberStyles.AllowParentheses.
цифры Последовательность цифр от 0 до 9.
. Символ десятичной запятой для конкретного языка и региональных параметров. Символ десятичной запятой текущего языка и региональных параметров может отображаться в s, если style включает флаг NumberStyles.AllowDecimalPoint.
fractional_digits Одно или несколько вхождений цифры 0-9, если style включает флаг NumberStyles.AllowExponent или один или несколько вхождений цифры 0, если это не так. Дробные цифры могут отображаться в s только в том случае, если style включает флаг NumberStyles.AllowDecimalPoint.
E Символ e или E, указывающий, что значение представлено в экспоненциальной (научной) нотации. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent.
exponential_digits Последовательность цифр от 0 до 9. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent.
шестнадцатеричные Последовательность шестнадцатеричных цифр от 0 до f или 0 до F.

Примечание

Все символы NUL (U+0000) в s игнорируются операцией синтаксического анализа независимо от значения аргумента style.

Строка только с десятичными цифрами (которая соответствует стилю NumberStyles.None) всегда анализируется успешно. Большинство остальных элементов управления элементами управления NumberStyles, которые могут присутствовать, но не требуются, в этой входной строке. В следующей таблице показано, как отдельные элементы NumberStyles влияют на элементы, которые могут присутствовать в s.

Не составные значения NumberStyles Элементы, разрешенные в s в дополнение к цифрам
NumberStyles.None Только десятичные цифры.
NumberStyles.AllowDecimalPoint Десятичная точка (.) и элементы fractional_digits. Однако если стиль не включает флаг NumberStyles.AllowExponent, fractional_digits должны состоять только из одной или нескольких цифр 0; в противном случае создается OverflowException.
NumberStyles.AllowExponent Символ e или E, указывающий экспоненциальную нотацию, а также exponential_digits.
NumberStyles.AllowLeadingWhite Элемент ws в начале s.
NumberStyles.AllowTrailingWhite Элемент ws в конце s.
NumberStyles.AllowLeadingSign Знак перед цифрами.
NumberStyles.AllowTrailingSign Знак после цифр.
NumberStyles.AllowParentheses Круглые скобки до и после цифр, чтобы указать отрицательное значение.
NumberStyles.AllowThousands Элемент разделителя групп (,) .
NumberStyles.AllowCurrencySymbol Элемент currency ($).

Если используется флаг NumberStyles.AllowHexSpecifier, s должно быть шестнадцатеричным значением. Единственными другими флагами, которые можно объединить с ним, являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite. (Перечисление NumberStyles включает составной стиль чисел, NumberStyles.HexNumber, который включает оба флага пробела.)

Примечание

Если параметр s представляет строковое представление шестнадцатеричного числа, оно не может предшествовать любому украшению (например, 0x или &h), которое отличает его как шестнадцатеричное число. Это приводит к возникновению исключения при синтаксическом анализе.

Параметр provider — это реализация IFormatProvider, метод GetFormat которого возвращает объект NumberFormatInfo, предоставляющий сведения о формате sдля конкретного языка и региональных параметров. Существует три способа использования параметра provider для предоставления пользовательских сведений о форматировании в операцию синтаксического анализа:

  • Вы можете передать фактический объект NumberFormatInfo, предоставляющий сведения о форматировании. (Его реализация GetFormat просто возвращается.)

  • Можно передать объект CultureInfo, указывающий язык и региональные параметры, форматирование которых необходимо использовать. Его свойство NumberFormat предоставляет сведения о форматировании.

  • Вы можете передать пользовательскую реализацию IFormatProvider. Его метод GetFormat должен создать экземпляр и вернуть объект NumberFormatInfo, предоставляющий сведения о форматировании.

Если providernull, используется объект NumberFormatInfo для текущего языка и региональных параметров.

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

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

.NET 9 и другие версии
Продукт Версии
.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

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Исходный код:
UInt32.cs
Исходный код:
UInt32.cs
Исходный код:
UInt32.cs

Важно!

Этот API несовместим с CLS.

Преобразует представление диапазона числа в указанном стиле и формате языка и региональных параметров в его 32-разрядное целое число без знака.

C#
public static uint Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
C#
[System.CLSCompliant(false)]
public static uint Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
C#
[System.CLSCompliant(false)]
public static uint Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);

Параметры

s
ReadOnlySpan<Char>

Диапазон, содержащий символы, представляющие число для преобразования. Диапазон интерпретируется с помощью стиля, заданного параметром style.

style
NumberStyles

Побитовое сочетание значений перечисления, указывающее элементы стиля, которые могут присутствовать в s. Обычное значение, указываемое, — Integer.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании, зависящее от языка и региональных параметров, о s.

Возвращаемое значение

32-разрядное целое число без знака, эквивалентное числу, указанному в s.

Реализации

Атрибуты

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

.NET 9 и другие версии
Продукт Версии
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Исходный код:
UInt32.cs
Исходный код:
UInt32.cs

Анализирует диапазон символов UTF-8 в значение.

C#
public static uint Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);

Параметры

utf8Text
ReadOnlySpan<Byte>

Диапазон символов UTF-8 для анализа.

style
NumberStyles

Побитовое сочетание стилей чисел, которые могут присутствовать в utf8Text.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании, зависящее от языка и региональных параметров, о utf8Text.

Возвращаемое значение

Результат синтаксического анализа utf8Text.

Реализации

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

.NET 9 и .NET 8
Продукт Версии
.NET 8, 9

Parse(String, IFormatProvider)

Исходный код:
UInt32.cs
Исходный код:
UInt32.cs
Исходный код:
UInt32.cs

Важно!

Этот API несовместим с CLS.

Альтернативный вариант, совместимый с CLS
System.Int64.Parse(String)

Преобразует строковое представление числа в указанном формате языка и региональных параметров в его 32-разрядное целое число без знака.

C#
[System.CLSCompliant(false)]
public static uint Parse (string s, IFormatProvider provider);
C#
public static uint Parse (string s, IFormatProvider? provider);
C#
[System.CLSCompliant(false)]
public static uint Parse (string s, IFormatProvider? provider);

Параметры

s
String

Строка, представляющая число для преобразования.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании, зависящее от языка и региональных параметров, о s.

Возвращаемое значение

32-разрядное целое число без знака, эквивалентное числу, указанному в s.

Реализации

Атрибуты

Исключения

s не соответствует правильному стилю.

s представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

Примеры

В следующем примере показан обработчик событий нажатия кнопки веб-формы. Он использует массив, возвращаемый свойством HttpRequest.UserLanguages, для определения языкового стандарта пользователя. Затем он создает экземпляр объекта CultureInfo, соответствующего соответствующему языковому стандарту. Затем объект NumberFormatInfo, принадлежащий к объекту CultureInfo, передается методу Parse(String, IFormatProvider) для преобразования входных данных пользователя в значение UInt32.

C#
protected void OkToUInteger_Click(object sender, EventArgs e)
{
    string locale;
    uint number;
    CultureInfo culture;

    // Return if string is empty
    if (String.IsNullOrEmpty(this.inputNumber.Text))
        return;

    // Get locale of web request to determine possible format of number
    if (Request.UserLanguages.Length == 0)
        return;
    locale = Request.UserLanguages[0];
    if (String.IsNullOrEmpty(locale))
        return;

    // Instantiate CultureInfo object for the user's locale
    culture = new CultureInfo(locale);

    // Convert user input from a string to a number
    try
    {
        number = UInt32.Parse(this.inputNumber.Text, culture.NumberFormat);
    }
    catch (FormatException)
    {
        return;
    }
    catch (Exception)
    {
        return;
    }
    // Output number to label on web form
    this.outputNumber.Text = "Number is " + number.ToString();
}

Комментарии

Параметр s содержит ряд форм:

[ws] [знак]цифры[ws]

Элементы в квадратных скобках ([ и ]) являются необязательными. В следующей таблице описан каждый элемент.

Элемент Описание
ws Необязательный пробел.
знак Необязательный знак или отрицательный знак, если s представляет нулевое значение.
цифры Последовательность цифр от 0 до 9.

Параметр s интерпретируется с помощью стиля NumberStyles.Integer. Помимо десятичных цифр целочисленного значения без знака, разрешены только начальные и конечные пробелы, а также начальный знак. (Если отрицательный знак присутствует, s должен представлять значение нуля или метод создает OverflowException.) Чтобы явно определить элементы стиля вместе с сведениями о форматировании, зависящими от языка и региональных параметров, которые могут присутствовать в s, используйте метод Parse(String, NumberStyles, IFormatProvider).

Параметр provider — это реализация IFormatProvider, метод GetFormat которого возвращает объект NumberFormatInfo, предоставляющий сведения о формате sдля конкретного языка и региональных параметров. Существует три способа использования параметра provider для предоставления пользовательских сведений о форматировании в операцию синтаксического анализа:

  • Вы можете передать фактический объект NumberFormatInfo, предоставляющий сведения о форматировании. (Его реализация GetFormat просто возвращается.)

  • Можно передать объект CultureInfo, указывающий язык и региональные параметры, форматирование которых необходимо использовать. Его свойство NumberFormat предоставляет сведения о форматировании.

  • Вы можете передать пользовательскую реализацию IFormatProvider. Его метод GetFormat должен создать экземпляр и вернуть объект NumberFormatInfo, предоставляющий сведения о форматировании.

Если providernull, используется NumberFormatInfo для текущего языка и региональных параметров.

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

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

.NET 9 и другие версии
Продукт Версии
.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

Parse(ReadOnlySpan<Char>, IFormatProvider)

Исходный код:
UInt32.cs
Исходный код:
UInt32.cs
Исходный код:
UInt32.cs

Анализирует диапазон символов в значение.

C#
public static uint Parse (ReadOnlySpan<char> s, IFormatProvider? provider);

Параметры

s
ReadOnlySpan<Char>

Диапазон символов для синтаксического анализа.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании, зависящее от языка и региональных параметров, о s.

Возвращаемое значение

Результат синтаксического анализа s.

Реализации

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

.NET 9 и другие версии
Продукт Версии
.NET 7, 8, 9

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Исходный код:
UInt32.cs
Исходный код:
UInt32.cs

Анализирует диапазон символов UTF-8 в значение.

C#
public static uint Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);

Параметры

utf8Text
ReadOnlySpan<Byte>

Диапазон символов UTF-8 для анализа.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании, зависящее от языка и региональных параметров, о utf8Text.

Возвращаемое значение

Результат синтаксического анализа utf8Text.

Реализации

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

.NET 9 и .NET 8
Продукт Версии
.NET 8, 9

Parse(String)

Исходный код:
UInt32.cs
Исходный код:
UInt32.cs
Исходный код:
UInt32.cs

Важно!

Этот API несовместим с CLS.

Альтернативный вариант, совместимый с CLS
System.Int64.Parse(String)

Преобразует строковое представление числа в 32-разрядное целое число без знака.

C#
[System.CLSCompliant(false)]
public static uint Parse (string s);
C#
public static uint Parse (string s);

Параметры

s
String

Строка, представляющая число для преобразования.

Возвращаемое значение

32-разрядное целое число без знака, эквивалентное числу, содержаемого в s.

Атрибуты

Исключения

Параметр snull.

Параметр s не имеет правильного формата.

Параметр s представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

Примеры

В следующем примере метод Parse(String) используется для анализа массива строковых значений.

C#
string[] values = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                    "0xFA1B", "163042", "-10", "2147483648", 
                    "14065839182", "16e07", "134985.0", "-12034" };
foreach (string value in values)
{
   try {
      uint number = UInt32.Parse(value); 
      Console.WriteLine("{0} --> {1}", value, number);
   }
   catch (FormatException) {
      Console.WriteLine("{0}: Bad Format", value);
   }   
   catch (OverflowException) {
      Console.WriteLine("{0}: Overflow", value);   
   }  
}
// The example displays the following output:
//       +13230 --> 13230
//       -0 --> 0
//       1,390,146: Bad Format
//       $190,235,421,127: Bad Format
//       0xFA1B: Bad Format
//       163042 --> 163042
//       -10: Overflow
//       2147483648 --> 2147483648
//       14065839182: Overflow
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034: Overflow

Комментарии

Параметр s должен быть строковым представлением числа в следующей форме.

[ws] [знак]цифры[ws]

Элементы в квадратных скобках ([ и ]) являются необязательными. В следующей таблице описан каждый элемент.

Элемент Описание
ws Необязательный пробел.
знак Необязательный знак. Допустимые знаки определяются NumberFormatInfo.NegativeSign и NumberFormatInfo.PositiveSign свойствами текущего языка и региональных параметров. Однако символ отрицательного знака можно использовать только с нулем; в противном случае метод создает OverflowException.
цифры Последовательность цифр от 0 до 9. Все начальные нули игнорируются.

Примечание

Строка, указанная параметром s, интерпретируется с помощью стиля NumberStyles.Integer. Он не может содержать разделители групп или десятичный разделитель, и он не может иметь десятичную часть.

Параметр s анализируется с помощью сведений о форматировании в объекте System.Globalization.NumberFormatInfo, который инициализирован для текущего языка и региональных параметров системы. Дополнительные сведения см. в NumberFormatInfo.CurrentInfo. Чтобы проанализировать строку с помощью сведений о форматировании определенного языка и региональных параметров, используйте метод Parse(String, IFormatProvider).

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

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

.NET 9 и другие версии
Продукт Версии
.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

Parse(String, NumberStyles)

Исходный код:
UInt32.cs
Исходный код:
UInt32.cs
Исходный код:
UInt32.cs

Важно!

Этот API несовместим с CLS.

Альтернативный вариант, совместимый с CLS
System.Int64.Parse(String)

Преобразует строковое представление числа в указанном стиле в 32-разрядное целое число без знака.

C#
[System.CLSCompliant(false)]
public static uint Parse (string s, System.Globalization.NumberStyles style);
C#
public static uint Parse (string s, System.Globalization.NumberStyles style);

Параметры

s
String

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

style
NumberStyles

Побитовое сочетание значений перечисления, указывающее разрешенный формат s. Обычное значение, указываемое, — Integer.

Возвращаемое значение

32-разрядное целое число без знака, эквивалентное числу, указанному в s.

Атрибуты

Исключения

style не является значением NumberStyles.

-или-

style не является сочетанием значений AllowHexSpecifier и HexNumber.

s не соответствует формату style.

s представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

-или-

s включает ненулевых, дробные цифры.

Примеры

В следующем примере показано, как проанализировать каждый элемент в строковом массиве с помощью ряда NumberStyles значений.

C#
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values= { " 214309 ", "1,064,181", "(0)", "10241+", " + 21499 ", 
                         " +21499 ", "122153.00", "1e03ff", "91300.0e-2" };
      NumberStyles whitespace =  NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite;
      NumberStyles[] styles= { NumberStyles.None, whitespace, 
                               NumberStyles.AllowLeadingSign | NumberStyles.AllowTrailingSign | whitespace, 
                               NumberStyles.AllowThousands | NumberStyles.AllowCurrencySymbol, 
                               NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint };

      // Attempt to convert each number using each style combination.
      foreach (string value in values)
      {
         Console.WriteLine("Attempting to convert '{0}':", value);
         foreach (NumberStyles style in styles)
         {
            try {
               uint number = UInt32.Parse(value, style);
               Console.WriteLine("   {0}: {1}", style, number);
            }   
            catch (FormatException) {
               Console.WriteLine("   {0}: Bad Format", style);
            }   
            catch (OverflowException)
            {
               Console.WriteLine("   {0}: Overflow", value);         
            }         
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    Attempting to convert ' 214309 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: 214309
//       Integer, AllowTrailingSign: 214309
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1,064,181':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: 1064181
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '(0)':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '10241+':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 10241
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' + 21499 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' +21499 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 21499
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '122153.00':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 122153
//    
//    Attempting to convert '1e03ff':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '91300.0e-2':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 913

Комментарии

Параметр style определяет элементы стиля (например, пробелы, положительный или отрицательный знак, символ разделителя групп или десятичный знак), которые разрешены в параметре s для успешной операции синтаксического анализа. style должен быть сочетанием битовых флагов из перечисления NumberStyles. Параметр style делает эту перегрузку метода полезной, если s содержит строковое представление шестнадцатеричного значения, когда числовая система (десятичная или шестнадцатеричная) представленная s известна только во время выполнения, или если требуется запретить пробел или символ знака в s.

В зависимости от значения styleпараметр s может включать следующие элементы:

[ws] [] [знак] [цифры;]цифры[.fractional_digits][E[ знак]exponential_digits][ws]

Элементы в квадратных скобках ([ и ]) являются необязательными. Если style включает NumberStyles.AllowHexSpecifier, параметр s может содержать следующие элементы:

[ws]шестнадцатеричные[ws]

В следующей таблице описан каждый элемент.

Элемент Описание
ws Необязательный пробел. Пробел может отображаться в начале s, если style включает флаг NumberStyles.AllowLeadingWhite, и он может отображаться в конце s, если style включает флаг NumberStyles.AllowTrailingWhite.
$ Символ валюты, зависящий от языка и региональных параметров. Его положение в строке определяется NumberFormatInfo.CurrencyNegativePattern и NumberFormatInfo.CurrencyPositivePattern свойствами текущего языка и региональных параметров. Символ валюты текущего языка и региональных параметров может отображаться в s, если style включает флаг NumberStyles.AllowCurrencySymbol.
знак Необязательный знак. Знак может отображаться в начале s, если style включает флаг NumberStyles.AllowLeadingSign, и он может отображаться в конце s, если style включает флаг NumberStyles.AllowTrailingSign. Скобки можно использовать в s, чтобы указать отрицательное значение, если style включает флаг NumberStyles.AllowParentheses. Однако символ отрицательного знака можно использовать только с нулем; в противном случае метод создает OverflowException.
цифры

fractional_digits

exponential_digits
Последовательность цифр от 0 до 9. Для fractional_digitsдопустимо только цифра 0.
, Символ разделителя групп, зависящих от языка и региональных параметров. Разделитель групп текущего языка и региональных параметров может отображаться в s, если style включает флаг NumberStyles.AllowThousands.
. Символ десятичной запятой для конкретного языка и региональных параметров. Символ десятичной запятой текущего языка и региональных параметров может отображаться в s, если style включает флаг NumberStyles.AllowDecimalPoint. Только цифра 0 может отображаться как дробная цифра для успешной операции синтаксического анализа; Если fractional_digits включает любую другую цифру, создается FormatException.
E Символ e или E, указывающий, что значение представлено в экспоненциальной (научной) нотации. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent.
шестнадцатеричные Последовательность шестнадцатеричных цифр от 0 до f или 0 до F.

Примечание

Все символы NUL (U+0000) в s игнорируются операцией синтаксического анализа независимо от значения аргумента style.

Строка только с цифрами (которая соответствует стилю NumberStyles.None) всегда анализируется успешно, если он находится в диапазоне типа UInt32. Большинство остальных элементов управления элементами управления NumberStyles, которые могут присутствовать, но не требуются, в входной строке. В следующей таблице показано, как отдельные элементы NumberStyles влияют на элементы, которые могут присутствовать в s.

значение NumberStyles Элементы, разрешенные в s в дополнение к цифрам
None Только элемент цифры.
AllowDecimalPoint Десятичная точка (.) и дробные цифры элементов.
AllowExponent Символ e или E, указывающий экспоненциальную нотацию, а также exponential_digits.
AllowLeadingWhite Элемент ws в начале s.
AllowTrailingWhite Элемент ws в конце s.
AllowLeadingSign Элемент знак в начале s.
AllowTrailingSign Элемент знака в конце .
AllowParentheses Элемент знака в виде круглых скобок, включающей числовое значение.
AllowThousands Элемент разделителя групп (,).
AllowCurrencySymbol Элемент валюты ($).
Currency Все элементы. Однако s не может представлять шестнадцатеричное число или число в экспоненциальной нотации.
Float Элемент ws в начале или конце , знак знака в начале и символ десятичной запятой (.) . Параметр s также может использовать экспоненциальную нотацию.
Number Элементы ws, sign, разделителя групп (,) и десятичной запятой (.) .
Any Все элементы. Однако s не может представлять шестнадцатеричное число.

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

Единственными другими флагами, которые можно объединить с параметром style, являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite. (Перечисление NumberStyles включает составной стиль чисел, NumberStyles.HexNumber, который включает оба флага пробела.)

Примечание

Если s является строковым представлением шестнадцатеричного числа, оно не может предшествовать любому украшению (например, 0x или &h), которое отличает его как шестнадцатеричное число. Это приводит к сбою преобразования.

Параметр s анализируется с помощью сведений о форматировании в объекте NumberFormatInfo, который инициализирован для текущего языка и региональных параметров системы. Чтобы указать язык и региональные параметры, сведения о форматировании которых используются для операции синтаксического анализа, вызовите перегрузку Parse(String, NumberStyles, IFormatProvider).

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

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

.NET 9 и другие версии
Продукт Версии
.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