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

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


Int32.Parse Метод

Определение

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

Перегрузки

Parse(String)

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

Parse(ReadOnlySpan<Byte>, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

Parse(String, NumberStyles)

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

Parse(String, IFormatProvider)

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

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

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

Parse(String, NumberStyles, IFormatProvider)

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

Parse(String)

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

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

C#
public static int Parse (string s);

Параметры

s
String

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

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

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

Исключения

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

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

Примеры

В следующем примере показано, как преобразовать строковое значение в 32-разрядное целое число со знаком с помощью метода Int32.Parse(String). После этого целочисленное значение отображается в консоли.

C#
using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                          "0xFA1B", "163042", "-10", "007", "2147483647",
                          "2147483648", "16e07", "134985.0", "-12034",
                          "-2147483648", "-2147483649" };
      foreach (string value in values)
      {
         try {
            int number = Int32.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 --> -10
//       007 --> 7
//       2147483647 --> 2147483647
//       2147483648: Overflow
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034 --> -12034
//       -2147483648 --> -2147483648
//       -2147483649: Overflow

Комментарии

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

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

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

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

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

Параметр s анализируется с помощью сведений о форматировании в объекте NumberFormatInfo, инициализированном для текущего языка и региональных параметров системы. Дополнительные сведения см. в CurrentInfo. Чтобы проанализировать строку с помощью сведений о форматировании другого языка и региональных параметров, используйте метод Int32.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

Parse(ReadOnlySpan<Byte>, IFormatProvider)

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

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

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

Параметры

utf8Text
ReadOnlySpan<Byte>

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

provider
IFormatProvider

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

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

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

Реализации

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

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

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

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

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

Параметры

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

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

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

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

Реализации

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

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

Parse(String, NumberStyles)

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

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

C#
public static int Parse (string s, System.Globalization.NumberStyles style);

Параметры

s
String

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

style
NumberStyles

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

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

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

Исключения

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

-или-

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

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

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

-или-

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

Примеры

В следующем примере метод Int32.Parse(String, NumberStyles) используется для анализа строковых представлений нескольких Int32 значений. Текущий язык и региональные параметры для примера — en-US.

C#
using System;
using System.Globalization;

public class ParseInt32
{
   public static void Main()
   {
      Convert("104.0", NumberStyles.AllowDecimalPoint);
      Convert("104.9", NumberStyles.AllowDecimalPoint);
      Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol |
                                 NumberStyles.Number);
      Convert("103E06", NumberStyles.AllowExponent);
      Convert("-1,345,791", NumberStyles.AllowThousands);
      Convert("(1,345,791)", NumberStyles.AllowThousands |
                             NumberStyles.AllowParentheses);
   }

   private static void Convert(string value, NumberStyles style)
   {
      try
      {
         int number = Int32.Parse(value, style);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value);
      }
   }
}
// The example displays the following output to the console:
//       Converted '104.0' to 104.
//       '104.9' is out of range of the Int32 type.
//       ' $17,198,064.42' is out of range of the Int32 type.
//       Converted '103E06' to 103000000.
//       Unable to convert '-1,345,791'.
//       Converted '(1,345,791)' to -1345791.

Комментарии

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

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

Или, если style включает AllowHexSpecifier:

[ws]hexdigits[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.
цифры

fractional_digits

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

Примечание

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

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

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

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

Параметр s анализируется с помощью сведений о форматировании в объекте NumberFormatInfo, который инициализирован для текущего языка и региональных параметров системы. Чтобы указать язык и региональные параметры, сведения о форматировании которых используются для операции синтаксического анализа, вызовите перегрузку Int32.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

Parse(String, IFormatProvider)

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

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

C#
public static int Parse (string s, IFormatProvider provider);
C#
public static int Parse (string s, IFormatProvider? provider);

Параметры

s
String

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

provider
IFormatProvider

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

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

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

Реализации

Исключения

s не является правильным форматом.

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

Примеры

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

C#
protected void OkToInteger_Click(object sender, EventArgs e)
{
    string locale;
    int 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 = Int32.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();
}

Комментарии

Эта перегрузка метода Parse(String, IFormatProvider) обычно используется для преобразования текста, который можно отформатировать различными способами в значение Int32. Например, его можно использовать для преобразования текста, введенного пользователем в текстовое поле HTML, в числовое значение.

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

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

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

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

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

Параметр provider — это реализация IFormatProvider, например объект NumberFormatInfo или CultureInfo. Параметр provider предоставляет сведения о формате sдля конкретного языка и региональных параметров. Если 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<Byte>, NumberStyles, IFormatProvider)

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

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

C#
public static int 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(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

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

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

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

Параметры

s
ReadOnlySpan<Char>

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

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(String, NumberStyles, IFormatProvider)

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

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

C#
public static int Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
C#
public static int Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);

Параметры

s
String

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

style
NumberStyles

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

provider
IFormatProvider

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

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

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

Реализации

Исключения

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

-или-

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

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

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

-или-

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

Примеры

В следующем примере используются различные параметры style и provider для анализа строковых представлений значений Int32. Он также демонстрирует некоторые из различных способов интерпретации одной и той же строки в зависимости от языка и региональных параметров, сведения о форматировании которых используются для операции синтаксического анализа.

C#
using System;
using System.Globalization;

public class ParseInt32
{
   public static void Main()
   {
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("en-GB"));
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("fr-FR"));
      Convert("12,000", NumberStyles.Float, new CultureInfo("en-US"));

      Convert("12 425,00", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("sv-SE"));
      Convert("12,425.00", NumberStyles.Float | NumberStyles.AllowThousands,
              NumberFormatInfo.InvariantInfo);
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("fr-FR"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("en-US"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowThousands,
              new CultureInfo("en-US"));
   }

   private static void Convert(string value, NumberStyles style,
                               IFormatProvider provider)
   {
      try
      {
         int number = Int32.Parse(value, style, provider);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value);
      }
   }
}
// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int32 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.

Комментарии

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

[ws] [$] [знак] [цифры,]цифры[.fractional_digist][знак]exponential_digits][ws]

Или, если style включает AllowHexSpecifier:

[ws]hexdigits[ws]

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

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

fractional_digits

exponential_digits
Последовательность цифр от 0 до 9. Для fractional_digitsдопустимо только цифра 0.
, Символ разделителя тысяч, зависящих от языка и региональных параметров. Разделитель тысяч языка и региональных параметров, указанных provider, может отображаться в s, если style включает флаг NumberStyles.AllowThousands.
. Символ десятичной запятой для конкретного языка и региональных параметров. Символ десятичной запятой языка и региональных параметров, указанных provider, может отображаться в s, если style включает флаг NumberStyles.AllowDecimalPoint.

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

Примечание

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

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

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

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

Параметр provider — это реализация IFormatProvider, например объект NumberFormatInfo или CultureInfo. Параметр provider предоставляет сведения о языках и региональных параметрах, используемых в синтаксическом анализе. Если 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