UInt64.Parse Метод

Определение

Преобразует строковое представление числа в эквивалентное ему 64-битовое целое число без знака.Converts the string representation of a number to its 64-bit unsigned integer equivalent.

Перегрузки

Parse(String, NumberStyles, IFormatProvider)

Преобразует строковое представление числа в формате, соответствующем стилю, языку и региональным параметрам, в эквивалентное ему 64-битовое целое число без знака.Converts the string representation of a number in a specified style and culture-specific format to its 64-bit unsigned integer equivalent.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Преобразует представление числа в виде диапазона в формате, соответствующем определенному стилю, языку и региональным параметрам, в эквивалентное ему 64-битовое целое число без знака.Converts the span representation of a number in a specified style and culture-specific format to its 64-bit unsigned integer equivalent.

Parse(String, NumberStyles)

Преобразует строковое представление числа в указанном формате в эквивалентное ему 64-битовое целое число без знака.Converts the string representation of a number in a specified style to its 64-bit unsigned integer equivalent.

Parse(String)

Преобразует строковое представление числа в эквивалентное ему 64-битовое целое число без знака.Converts the string representation of a number to its 64-bit unsigned integer equivalent.

Parse(String, IFormatProvider)

Преобразует строковое представление числа в эквивалентное ему 64-разрядное целое число без знака в указанном формате, соответствующем языку и региональным параметрам.Converts the string representation of a number in a specified culture-specific format to its 64-bit unsigned integer equivalent.

Parse(String, NumberStyles, IFormatProvider)

Важно!

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

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

Преобразует строковое представление числа в формате, соответствующем стилю, языку и региональным параметрам, в эквивалентное ему 64-битовое целое число без знака.Converts the string representation of a number in a specified style and culture-specific format to its 64-bit unsigned integer equivalent.

public:
 static System::UInt64 Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static ulong Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> uint64
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As ULong

Параметры

s
String

Строка, представляющая преобразуемое число.A string that represents the number to convert. Строка интерпретируется с использованием стиля, указанного параметром style.The string is interpreted by using the style specified by the style parameter.

style
NumberStyles

Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут быть представлены в параметре s.A bitwise combination of enumeration values that indicates the style elements that can be present in s. Обычно указывается значение Integer.A typical value to specify is Integer.

provider
IFormatProvider

Объект, который предоставляет сведения о форматировании параметра s в зависимости от языка и региональных параметров.An object that supplies culture-specific formatting information about s.

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

64-битовое целое число без знака, эквивалентное числу, заданному параметром s.A 64-bit unsigned integer equivalent to the number specified in s.

Атрибуты

Исключения

Параметр s содержит значение null.The s parameter is null.

style не является значением NumberStyles.style is not a NumberStyles value.

-или--or- style не является сочетанием значений AllowHexSpecifier и HexNumber.style is not a combination of AllowHexSpecifier and HexNumber values.

Параметр s не представлен в формате, совместимом с style.The s parameter is not in a format compliant with style.

Параметр s представляет число, которое меньше MinValue или больше MaxValue.The s parameter represents a number less than MinValue or greater than MaxValue.

-или--or- s содержит ненулевые дробные разряды.s includes non-zero, fractional digits.

Примеры

В следующем примере используется метод Parse(String, NumberStyles, IFormatProvider) для преобразования различных строковых представлений чисел в 64-разрядные целочисленные значения без знака.The following example uses the Parse(String, NumberStyles, IFormatProvider) method to convert various string representations of numbers to 64-bit unsigned integer values.

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,
                                    UInt64.Parse(value, style, ci));
               }
               catch (FormatException) {
                  Console.WriteLine("      Unable to parse '{0}'.", value);
               }      
               catch (OverflowException) {
                  Console.WriteLine("      '{0}' is out of range of the UInt64 type.",
                                    value);
               }
            }
         }
      }                                    
   }
}
// The example displays the following output:
//       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 UInt64 type.
//          Unable to parse '-103214,00'.
//          '104561.1' is out of range of the UInt64 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 UInt64 type.
//          Unable to parse '104561.1'.
//          '104561,1' is out of range of the UInt64 type.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "fr-FR" }
      Dim styles() As NumberStyles = { NumberStyles.Integer, _
                                       NumberStyles.Integer Or NumberStyles.AllowDecimalPoint }
      Dim values() As String = { "170209", "+170209.0", "+170209,0", "-103214.00", _
                                 "-103214,00", "104561.1", "104561,1" }
      
      ' Parse strings using each culture
      For Each cultureName As String In cultureNames
         Dim ci As New CultureInfo(cultureName)
         Console.WriteLine("Parsing strings using the {0} culture", ci.DisplayName)
         ' Use each style.
         For Each style As NumberStyles In styles
            Console.WriteLine("   Style: {0}", style.ToString())
            ' Parse each numeric string.
            For Each value As String In values
               Try
                  Console.WriteLine("      Converted '{0}' to {1}.", value, _
                                    UInt64.Parse(value, style, ci))
               Catch e As FormatException
                  Console.WriteLine("      Unable to parse '{0}'.", value)   
               Catch e As OverflowException
                  Console.WriteLine("      '{0}' is out of range of the UInt64 type.", _
                                    value)         
               End Try
            Next
         Next
      Next                                    
   End Sub
End Module
' The example displays the following output:
'       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 UInt64 type.
'          Unable to parse '-103214,00'.
'          '104561.1' is out of range of the UInt64 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 UInt64 type.
'          Unable to parse '104561.1'.
'          '104561,1' is out of range of the UInt64 type.

Комментарии

Параметр style определяет элементы стиля (такие как пробелы или знак плюса или минуса), допустимые в параметре s для успешной операции синтаксического анализа.The style parameter defines the style elements (such as white space or the positive or negative sign symbol) that are allowed in the s parameter for the parse operation to succeed. Он должен представлять собой сочетание битовых флагов из перечисления NumberStyles.It must be a combination of bit flags from the NumberStyles enumeration.

В зависимости от значения styleпараметр s может включать следующие элементы:Depending on the value of style, the s parameter may include the following elements:

[WS] [$] [Sign] цифры[. fractional_digits] [E [sign]exponential_digits] [WS][ws][$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Если style включает NumberStyles.AllowHexSpecifier, параметр s может включать следующие элементы:If style includes NumberStyles.AllowHexSpecifier, the s parameter may include the following elements:

[WS] хексдигитс[WS][ws]hexdigits[ws]

Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space. Пробелы могут присутствовать в начале s если style включает флаг NumberStyles.AllowLeadingWhite и может находиться в конце s, если style включает флаг NumberStyles.AllowTrailingWhite.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Символ валюты, зависящий от языка и региональных параметров.A culture-specific currency symbol. Его расположение в строке определяется свойством CurrencyPositivePattern объекта NumberFormatInfo, возвращаемого методом GetFormat параметра provider.Its position in the string is defined by the CurrencyPositivePattern property of the NumberFormatInfo object that is returned by the GetFormat method of the provider parameter. Символ валюты может отображаться в s, если style включает флаг NumberStyles.AllowCurrencySymbol.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Необязательный знак.An optional sign. (Метод вызывает исключение OverflowException, если s содержит знак минус и представляет ненулевое число.) Знак может располагаться в начале s если style включает флаг NumberStyles.AllowLeadingSign и может находиться в конце s, если style включает флаг NumberStyles.AllowTrailingSign.(The method throws an OverflowException if s includes a negative sign and represents a non-zero number.) The sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear the end of s if style includes the NumberStyles.AllowTrailingSign flag. Круглые скобки можно использовать в s, чтобы указать отрицательное значение, если style включает флаг NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9.
.. Символ десятичной запятой, зависящий от языка и региональных параметров.A culture-specific decimal point symbol. Символ десятичной запятой текущего языка и региональных параметров может присутствовать в s, если style включает флаг NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional_digitsfractional_digits Одно или несколько вхождений цифры 0-9, если style включает флаг NumberStyles.AllowExponent или одно или несколько вхождений цифры 0 в противном случае.One or more occurrences of the digit 0-9 if style includes the NumberStyles.AllowExponent flag, or one or more occurrences of the digit 0 if it does not. Дробные цифры могут присутствовать в s только в том случае, если style включает флаг NumberStyles.AllowDecimalPoint.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
ДE Символ "e" или "E", указывающий, что значение представлено в экспоненциальной (экспоненциальной) нотации.The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponential_digitsexponential_digits Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
хексдигитсhexdigits Последовательность шестнадцатеричных цифр от 0 до f или от 0 до F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Примечание

Все завершающие символы NUL (U + 0000) в s игнорируются операцией синтаксического анализа независимо от значения аргумента style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Строка с десятичными цифрами (которая соответствует стилю NumberStyles.None) всегда будет успешно проанализирована.A string with decimal digits only (which corresponds to the NumberStyles.None style) always parses successfully. Большинство оставшихся NumberStyles элементов управляют элементами управления, которые могут присутствовать, но не обязательно должны присутствовать в этой входной строке.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in this input string. В следующей таблице показано, как отдельные члены NumberStyles влияют на элементы, которые могут присутствовать в s.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Несоставные значения NumberStylesNon-composite NumberStyles values Элементы, разрешенные в s в дополнение к цифрамElements permitted in s in addition to digits
NumberStyles.None Только десятичные цифры.Decimal digits only.
NumberStyles.AllowDecimalPoint Элементы десятичной запятой (.) и fractional_digits .The decimal point (.) and fractional_digits elements. Однако если Style не включает флаг NumberStyles.AllowExponent, fractional_digits должны состоять только из одной или нескольких цифр 0; в противном случае создается OverflowException.However, if style does not include the NumberStyles.AllowExponent flag, fractional_digits must consist of only one or more 0 digits; otherwise, an OverflowException is thrown.
NumberStyles.AllowExponent Символ "e" или "E", который указывает на экспоненциальную нотацию, а также exponential_digits.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
NumberStyles.AllowLeadingWhite Элемент WS в начале s.The ws element at the beginning of s.
NumberStyles.AllowTrailingWhite Элемент WS в конце s.The ws element at the end of s.
NumberStyles.AllowLeadingSign Знак перед цифрами.A sign before digits.
NumberStyles.AllowTrailingSign Знак после цифр.A sign after digits.
NumberStyles.AllowParentheses Круглые скобки до и после цифр для обозначения отрицательного значения.Parentheses before and after digits to indicate a negative value.
NumberStyles.AllowThousands Элемент разделителя групп (,).The group separator (,) element.
NumberStyles.AllowCurrencySymbol Элемент Currency ($).The currency ($) element.

Если используется флаг NumberStyles.AllowHexSpecifier, s должен быть шестнадцатеричным значением.If the NumberStyles.AllowHexSpecifier flag is used, s must be a hexadecimal value. Допустимые шестнадцатеричные символы: 0-9, A-F и A-f.Valid hexadecimal characters are 0-9, A-F, and a-f. Префикс, такой как 0x, не поддерживается и приводит к сбою операции синтаксического анализа.A prefix such as "0x" is not supported and causes the parse operation to fail. Единственными другими флагами, которые можно сочетать с ним, являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite.The only other flags that can be combined with it are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (Перечисление NumberStyles включает в себя стиль составного числа NumberStyles.HexNumber, включающий оба флага пробела.)(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

Примечание

Если параметр s является строковым представлением шестнадцатеричного числа, ему не может предшествовать любое декорирование (например, 0x или &h), которое отличает его как шестнадцатеричное число.If the s parameter is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. В результате операция синтаксического анализа выдаст исключение.This causes the parse operation to throw an exception.

Параметр provider является реализацией IFormatProvider, метод GetFormat возвращает объект NumberFormatInfo, который предоставляет сведения о формате sв зависимости от языка и региональных параметров.The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. Существует три способа использования параметра provider для предоставления сведений о пользовательском форматировании операции синтаксического анализа:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Можно передать фактический объект NumberFormatInfo, предоставляющий сведения о форматировании.You can pass the actual NumberFormatInfo object that provides formatting information. (Его реализация GetFormat просто возвращает сам себя.)(Its implementation of GetFormat simply returns itself.)

  • Можно передать объект CultureInfo, указывающий язык и региональные параметры, форматирование которых будет использоваться.You can pass a CultureInfo object that specifies the culture whose formatting is to be used. Его свойство NumberFormat предоставляет сведения о форматировании.Its NumberFormat property provides formatting information.

  • Можно передать пользовательскую реализацию IFormatProvider.You can pass a custom IFormatProvider implementation. Его GetFormat метод должен создать экземпляр и вернуть объект NumberFormatInfo, предоставляющий сведения о форматировании.Its GetFormat method must instantiate and return the NumberFormatInfo object that provides formatting information.

Если provider null, используется объект NumberFormatInfo для текущего языка и региональных параметров.If provider is null, the NumberFormatInfo object for the current culture is used.

Дополнительно

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Важно!

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

Преобразует представление числа в виде диапазона в формате, соответствующем определенному стилю, языку и региональным параметрам, в эквивалентное ему 64-битовое целое число без знака.Converts the span representation of a number in a specified style and culture-specific format to its 64-bit unsigned integer equivalent.

[System.CLSCompliant(false)]
public static ulong Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> uint64
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = null) As ULong

Параметры

s
ReadOnlySpan<Char>

Диапазон, содержащий символы, которые представляют преобразуемое число.A span containing the characters that represent the number to convert. Диапазон интерпретируется с использованием стиля, указанного в параметре style.The span is interpreted by using the style specified by the style parameter.

style
NumberStyles

Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут быть представлены в параметре s.A bitwise combination of enumeration values that indicates the style elements that can be present in s. Обычно указывается значение Integer.A typical value to specify is Integer.

provider
IFormatProvider

Объект, который предоставляет сведения о форматировании параметра s в зависимости от языка и региональных параметров.An object that supplies culture-specific formatting information about s.

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

64-битовое целое число без знака, эквивалентное числу, заданному параметром s.A 64-bit unsigned integer equivalent to the number specified in s.

Атрибуты

Parse(String, NumberStyles)

Важно!

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

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

Преобразует строковое представление числа в указанном формате в эквивалентное ему 64-битовое целое число без знака.Converts the string representation of a number in a specified style to its 64-bit unsigned integer equivalent.

public:
 static System::UInt64 Parse(System::String ^ s, System::Globalization::NumberStyles style);
[System.CLSCompliant(false)]
public static ulong Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> uint64
Public Shared Function Parse (s As String, style As NumberStyles) As ULong

Параметры

s
String

Строка, представляющая преобразуемое число.A string that represents the number to convert. Строка интерпретируется с использованием стиля, указанного параметром style.The string is interpreted by using the style specified by the style parameter.

style
NumberStyles

Побитовое сочетание значений перечисления, которое показывает разрешенный формат параметра s.A bitwise combination of the enumeration values that specifies the permitted format of s. Обычно указывается значение Integer.A typical value to specify is Integer.

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

64-битовое целое число без знака, эквивалентное числу, заданному параметром s.A 64-bit unsigned integer equivalent to the number specified in s.

Атрибуты

Исключения

Параметр s содержит значение null.The s parameter is null.

style не является значением NumberStyles.style is not a NumberStyles value.

-или--or- style не является сочетанием значений AllowHexSpecifier и HexNumber.style is not a combination of AllowHexSpecifier and HexNumber values.

Параметр s не представлен в формате, совместимом с style.The s parameter is not in a format compliant with style.

Параметр s представляет число, которое меньше MinValue или больше MaxValue.The s parameter represents a number less than MinValue or greater than MaxValue.

-или--or- s содержит ненулевые дробные разряды.s includes non-zero, fractional digits.

Примеры

В следующем примере предпринимается попытка выполнить синтаксический анализ каждого элемента в массиве строк с помощью нескольких значений NumberStyles.The following example tries to parse each element in a string array by using a number of NumberStyles values.

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 {
               ulong number = UInt64.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
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim values() As String = { " 214309 ", "1,064,181", "(0)", "10241+", _
                                 " + 21499 ", " +21499 ", "122153.00", _
                                 "1e03ff", "91300.0e-2" }
      Dim whitespace As NumberStyles =  NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite
      Dim styles() As NumberStyles = { NumberStyles.None, _
                                       whitespace, _
                                       NumberStyles.AllowLeadingSign Or NumberStyles.AllowTrailingSign Or whitespace, _
                                       NumberStyles.AllowThousands Or NumberStyles.AllowCurrencySymbol, _
                                       NumberStyles.AllowExponent Or NumberStyles.AllowDecimalPoint }

      ' Attempt to convert each number using each style combination.
      For Each value As String In values
         Console.WriteLine("Attempting to convert '{0}':", value)
         For Each style As NumberStyles In styles
            Try
               Dim number As ULong = UInt64.Parse(value, style)
               Console.WriteLine("   {0}: {1}", style, number)
            Catch e As FormatException
               Console.WriteLine("   {0}: Bad Format", style)
            Catch e As OverflowException
               Console.WriteLine("   {0}: Overflow", value)         
            End Try         
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' 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 для успешной операции синтаксического анализа.The style parameter defines the style elements (such as white space, the positive or negative sign symbol, the group separator symbol, or the decimal point symbol) that are allowed in the s parameter for the parse operation to succeed. style должен быть сочетанием битовых флагов из перечисления NumberStyles.style must be a combination of bit flags from the NumberStyles enumeration. Параметр style делает перегрузку этого метода полезной, когда s содержит строковое представление шестнадцатеричного значения, когда система счисления (десятичное или шестнадцатеричное число), представленная s, известна только во время выполнения, или если требуется запретить пробел или символ знака в s.The style parameter makes this method overload useful when s contains the string representation of a hexadecimal value, when the number system (decimal or hexadecimal) represented by s is known only at run time, or when you want to disallow white space or a sign symbol in s.

В зависимости от значения styleпараметр s может включать следующие элементы:Depending on the value of style, the s parameter may include the following elements:

[WS] [$] [Sign] [цифры,] цифры[. fractional_digits] [E [sign]exponential_digits] [WS][ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Если style включает NumberStyles.AllowHexSpecifier, параметр s может содержать следующие элементы:If style includes NumberStyles.AllowHexSpecifier, the s parameter may contain the following elements:

[WS] хексдигитс[WS][ws]hexdigits[ws]

Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space. Пробелы могут присутствовать в начале s если style включает флаг NumberStyles.AllowLeadingWhite и может находиться в конце s, если style включает флаг NumberStyles.AllowTrailingWhite.White space can appear at the start of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Символ валюты, зависящий от языка и региональных параметров.A culture-specific currency symbol. Его расположение в строке определяется свойствами NumberFormatInfo.CurrencyNegativePattern и NumberFormatInfo.CurrencyPositivePattern текущего языка и региональных параметров.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. Символ валюты текущего языка и региональных параметров может отображаться в s, если style включает флаг NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Необязательный знак.An optional sign. Знак может появиться в начале s если style включает флаг NumberStyles.AllowLeadingSign и может находиться в конце s, если style включает флаг NumberStyles.AllowTrailingSign.The sign can appear at the start of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingSign flag. Круглые скобки можно использовать в s, чтобы указать отрицательное значение, если style включает флаг NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag. Однако символ знака минус может использоваться только с нулем; в противном случае метод создает исключение OverflowException.However, the negative sign symbol can be used only with zero; otherwise, the method throws an OverflowException.
digitsdigits

fractional_digitsfractional_digits

exponential_digitsexponential_digits
Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9. Для fractional_digitsдопустима только цифра 0.For fractional_digits, only the digit 0 is valid.
,, Символ разделителя группы, зависящий от языка и региональных параметров.A culture-specific group separator symbol. Разделитель групп текущего языка и региональных параметров может отображаться в s, если style включает флаг NumberStyles.AllowThousands.The current culture's group separator can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Символ десятичной запятой, зависящий от языка и региональных параметров.A culture-specific decimal point symbol. Символ десятичной запятой текущего языка и региональных параметров может присутствовать в s, если style включает флаг NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag. Только цифра 0 может присутствовать в виде дробной части для выполнения операции синтаксического анализа. Если fractional_digits включает любую другую цифру, выдается FormatException.Only the digit 0 can appear as a fractional digit for the parse operation to succeed; if fractional_digits includes any other digit, a FormatException is thrown.
ДE Символ "e" или "E", указывающий, что значение представлено в экспоненциальной (экспоненциальной) нотации.The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
хексдигитсhexdigits Последовательность шестнадцатеричных цифр от 0 до f или от 0 до F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Примечание

Все завершающие символы NUL (U + 0000) в s игнорируются операцией синтаксического анализа независимо от значения аргумента style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Строка с цифрами (которая соответствует стилю NumberStyles.None) всегда будет успешно проанализирована, если она находится в диапазоне типа UInt64.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully if it is in the range of the UInt64 type. Большинство оставшихся NumberStyles элементов управляют элементами управления, которые могут присутствовать, но не обязательно должны присутствовать во входной строке.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. В следующей таблице показано, как отдельные члены NumberStyles влияют на элементы, которые могут присутствовать в s.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Значение NumberStylesNumberStyles value Элементы, разрешенные в s в дополнение к цифрамElements permitted in s in addition to digits
None Только элемент digits .The digits element only.
AllowDecimalPoint Элементы десятичной запятой (.) и дробные разряды .The decimal point (.) and fractional-digits elements.
AllowExponent Символ "e" или "E", который указывает на экспоненциальную нотацию, а также exponential_digits.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
AllowLeadingWhite Элемент WS в начале s.The ws element at the start of s.
AllowTrailingWhite Элемент WS в конце s.The ws element at the end of s.
AllowLeadingSign Элемент Sign в начале s.The sign element at the start of s.
AllowTrailingSign Элемент Sign в конце s.The sign element at the end of s.
AllowParentheses Элемент Sign в виде круглых скобок, охватывающих числовое значение.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Элемент разделителя групп (,).The group separator (,) element.
AllowCurrencySymbol Элемент Currency ($).The currency ($) element.
Currency Все элементы.All elements. Однако s не может представлять шестнадцатеричное число или число в экспоненциальной нотации.However, s cannot represent a hexadecimal number or a number in exponential notation.
Float Элемент WS в начале или в конце s, знак в начале sи символ десятичной запятой (.).The ws element at the start or end of s, sign at the start of s, and the decimal point (.) symbol. Параметр s может также использовать экспоненциальную нотацию.The s parameter can also use exponential notation.
Number Элементы ws, sign, разделителя групп (,) и десятичной запятой (.).The ws, sign, group separator (,), and decimal point (.) elements.
Any Все элементы.All elements. Однако s не может представлять шестнадцатеричное число.However, s cannot represent a hexadecimal number.

В отличие от других NumberStyles значений, допускающих, но не требующих наличия определенных элементов Style в s, значение стиля NumberStyles.AllowHexSpecifier означает, что отдельные числовые символы в s всегда будут интерпретироваться как шестнадцатеричные символы.Unlike the other NumberStyles values, which allow for, but do not require, the presence of particular style elements in s, the NumberStyles.AllowHexSpecifier style value means that the individual numeric characters in s are always interpreted as hexadecimal characters. Допустимые шестнадцатеричные символы: 0-9, A-F и A-f.Valid hexadecimal characters are 0-9, A-F, and a-f. Префикс, такой как 0x, не поддерживается и приводит к сбою операции синтаксического анализа.A prefix such as "0x" is not supported and causes the parse operation to fail. Единственными другими флагами, которые можно сочетать с параметром style, являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (Перечисление NumberStyles включает в себя стиль составного числа NumberStyles.HexNumber, включающий оба флага пробела.)(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

Примечание

Если s является строковым представлением шестнадцатеричного числа, ему не может предшествовать любое декорирование (например, 0x или &h), которое отличает его как шестнадцатеричное число.If s is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. Это приводит к сбою преобразования.This causes the conversion to fail.

Параметр s анализируется с помощью сведений о форматировании в объекте NumberFormatInfo, который инициализируется для текущего языка и региональных параметров системы.The s parameter is parsed by using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. Чтобы указать язык и региональные параметры, сведения о форматировании которых используются для операции синтаксического анализа, вызовите перегрузку Parse(String, NumberStyles, IFormatProvider).To specify the culture whose formatting information is used for the parse operation, call the Parse(String, NumberStyles, IFormatProvider) overload.

Дополнительно

Parse(String)

Важно!

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

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

Преобразует строковое представление числа в эквивалентное ему 64-битовое целое число без знака.Converts the string representation of a number to its 64-bit unsigned integer equivalent.

public:
 static System::UInt64 Parse(System::String ^ s);
[System.CLSCompliant(false)]
public static ulong Parse (string s);
static member Parse : string -> uint64
Public Shared Function Parse (s As String) As ULong

Параметры

s
String

Строка, представляющая преобразуемое число.A string that represents the number to convert.

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

64-разрядное целое число без знака, эквивалентное числу, содержащемуся в параметре s.A 64-bit unsigned integer equivalent to the number contained in s.

Атрибуты

Исключения

Параметр s содержит значение null.The s parameter is null.

Параметр s имеет неправильный формат.The s parameter is not in the correct format.

Параметр s представляет число, которое меньше MinValue или больше MaxValue.The s parameter represents a number less than MinValue or greater than MaxValue.

Примеры

В следующем примере используется метод Parse для синтаксического анализа массива строковых значений.The following example uses the Parse method to parse an array of string values.

string[] values = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                    "0xFA1B", "163042", "-10", "14065839182",
                    "16e07", "134985.0", "-12034" };
foreach (string value in values)
{
   try {
      ulong number = UInt64.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
//       14065839182 --> 14065839182
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034: Overflow
Dim values() As String = { "+13230", "-0", "1,390,146", "$190,235,421,127", _
                           "0xFA1B", "163042", "-10", "14065839182", _
                           "16e07", "134985.0", "-12034" }
For Each value As String In values
   Try
      Dim number As ULong = UInt64.Parse(value) 
      Console.WriteLine("{0} --> {1}", value, number)
   Catch e As FormatException
      Console.WriteLine("{0}: Bad Format", value)
   Catch e As OverflowException
      Console.WriteLine("{0}: Overflow", value)   
   End Try  
Next
' 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
'       14065839182 --> 14065839182
'       16e07: Bad Format
'       134985.0: Bad Format
'       -12034: Overflow

Комментарии

Параметр s должен быть строковым представлением числа в следующей форме.The s parameter should be the string representation of a number in the following form.

[WS] [Sign] цифры[WS][ws][sign]digits[ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space.
signsign Необязательный знак.An optional sign. Допустимые знаки знака определяются NumberFormatInfo.NegativeSign и NumberFormatInfo.PositiveSign свойствами текущего языка и региональных параметров.Valid sign characters are determined by the NumberFormatInfo.NegativeSign and NumberFormatInfo.PositiveSign properties of the current culture. Однако символ знака минус может использоваться только с нулем; в противном случае метод создает исключение OverflowException.However, the negative sign symbol can be used only with zero; otherwise, the method throws an OverflowException.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9. Все ведущие нули игнорируются.Any leading zeros are ignored.

Примечание

Строка, заданная параметром s, интерпретируется с помощью стиля NumberStyles.Integer.The string specified by the s parameter is interpreted by using the NumberStyles.Integer style. Он не может содержать разделители групп или десятичный разделитель и не может иметь дробную часть.It cannot contain any group separators or decimal separator, and it cannot have a decimal portion.

Параметр s анализируется с помощью сведений о форматировании в объекте System.Globalization.NumberFormatInfo, который инициализируется для текущего языка и региональных параметров системы.The s parameter is parsed by using the formatting information in a System.Globalization.NumberFormatInfo object that is initialized for the current system culture. Дополнительные сведения см. в разделе NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo. Чтобы выполнить синтаксический анализ строки с использованием сведений о форматировании конкретного языка и региональных параметров, используйте метод Parse(String, IFormatProvider).To parse a string by using the formatting information of a specific culture, use the Parse(String, IFormatProvider) method.

Дополнительно

Parse(String, IFormatProvider)

Важно!

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

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

Преобразует строковое представление числа в эквивалентное ему 64-разрядное целое число без знака в указанном формате, соответствующем языку и региональным параметрам.Converts the string representation of a number in a specified culture-specific format to its 64-bit unsigned integer equivalent.

public:
 static System::UInt64 Parse(System::String ^ s, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static ulong Parse (string s, IFormatProvider provider);
static member Parse : string * IFormatProvider -> uint64
Public Shared Function Parse (s As String, provider As IFormatProvider) As ULong

Параметры

s
String

Строка, представляющая преобразуемое число.A string that represents the number to convert.

provider
IFormatProvider

Объект, который предоставляет сведения о форматировании параметра s в зависимости от языка и региональных параметров.An object that supplies culture-specific formatting information about s.

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

64-битовое целое число без знака, эквивалентное числу, заданному параметром s.A 64-bit unsigned integer equivalent to the number specified in s.

Атрибуты

Исключения

Параметр s содержит значение null.The s parameter is null.

Параметр s имеет неправильный стиль.The s parameter is not in the correct style.

Параметр s представляет число, которое меньше MinValue или больше MaxValue.The s parameter represents a number less than MinValue or greater than MaxValue.

Примеры

В следующем примере показан обработчик событий нажатия кнопки в веб-форме.The following example is the button click event handler of a Web form. Для определения языкового стандарта пользователя используется массив, возвращенный свойством HttpRequest.UserLanguages.It uses the array returned by the HttpRequest.UserLanguages property to determine the user's locale. Затем он создает объект CultureInfo, соответствующий этому языку.It then instantiates a CultureInfo object that corresponds to that locale. Объект NumberFormatInfo, принадлежащий этому объекту CultureInfo, затем передается методу Parse(String, IFormatProvider) для преобразования входных данных пользователя в значение UInt64.The NumberFormatInfo object that belongs to that CultureInfo object is then passed to the Parse(String, IFormatProvider) method to convert the user's input to a UInt64 value.

protected void OkToSingle_Click(object sender, EventArgs e)
{
   string locale;
   float 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 = Single.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();
}
Protected Sub OkToSingle_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToSingle.Click
   Dim locale As String
   Dim culture As CultureInfo
   Dim number As Single

   ' Return if string is empty
   If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub

   ' Get locale of web request to determine possible format of number
   If Request.UserLanguages.Length = 0 Then Exit Sub
   locale = Request.UserLanguages(0)
   If String.IsNullOrEmpty(locale) Then Exit Sub

   ' Instantiate CultureInfo object for the user's locale
   culture = New CultureInfo(locale)

   ' Convert user input from a string to a number
   Try
      number = Single.Parse(Me.inputNumber.Text, culture.NumberFormat)
   Catch ex As FormatException
      Exit Sub
   Catch ex As OverflowException
      Exit Sub
   End Try

   ' Output number to label on web form
   Me.outputNumber.Text = "Number is " & number.ToString()
End Sub

Комментарии

Эта перегрузка метода Parse(String, IFormatProvider) обычно используется для преобразования текста, который может быть отформатирован различными способами, в UInt64 значение.This overload of the Parse(String, IFormatProvider) method is typically used to convert text that can be formatted in a variety of ways to a UInt64 value. Например, можно использовать для преобразования текста, вводимых пользователем, в текстовое поле HTML в числовое значение.For example, it can be used to convert the text entered by a user into an HTML text box to a numeric value.

Параметр s содержит номер формы:The s parameter contains a number of the form:

Протокол [знак] цифры [ws][ws][sign]digits[ws]

Элементы в квадратных скобках ([и]) являются необязательными.Items in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space.
signsign Необязательный положительный знак или отрицательный знак, если s представляет нулевое значение.An optional positive sign, or a negative sign if s represents the value zero.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.

Параметр s интерпретируется с помощью стиля NumberStyles.Integer.The s parameter is interpreted using the NumberStyles.Integer style. Помимо десятичных цифр целого числа без знака, допускается только начальные и конечные пробелы, а также ведущий символ.In addition to the unsigned integer value's decimal digits, only leading and trailing spaces along with a leading sign is allowed. (Если знак отрицательный, s должен представлять нулевое значение или метод вызывает исключение OverflowException.) Чтобы явно определить элементы стиля вместе с данными форматирования, зависящими от языка и региональных параметров, которые могут присутствовать в s, используйте метод Parse(String, NumberStyles, IFormatProvider).(If the negative sign is present, s must represent a value of zero, or the method throws an OverflowException.) To explicitly define the style elements together with the culture-specific formatting information that can be present in s, use the Parse(String, NumberStyles, IFormatProvider) method.

Параметр provider является реализацией IFormatProvider, метод GetFormat возвращает объект NumberFormatInfo, который предоставляет сведения о формате sв зависимости от языка и региональных параметров.The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. Существует три способа использования параметра provider для предоставления сведений о пользовательском форматировании операции синтаксического анализа:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Можно передать фактический объект NumberFormatInfo, предоставляющий сведения о форматировании.You can pass the actual NumberFormatInfo object that provides formatting information. (Его реализация GetFormat просто возвращает сам себя.)(Its implementation of GetFormat simply returns itself.)

  • Можно передать объект CultureInfo, указывающий язык и региональные параметры, форматирование которых будет использоваться.You can pass a CultureInfo object that specifies the culture whose formatting is to be used. Его свойство NumberFormat предоставляет сведения о форматировании.Its NumberFormat property provides formatting information.

  • Можно передать пользовательскую реализацию IFormatProvider.You can pass a custom IFormatProvider implementation. Его GetFormat метод должен создать экземпляр и вернуть объект NumberFormatInfo, предоставляющий сведения о форматировании.Its GetFormat method must instantiate and return the NumberFormatInfo object that provides formatting information.

Если provider null, используется NumberFormatInfo для текущего языка и региональных параметров.If provider is null, the NumberFormatInfo for the current culture is used.

Дополнительно

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