UInt64.Parse UInt64.Parse UInt64.Parse UInt64.Parse Method

Определение

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

Перегрузки

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

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

Parse(String) Parse(String) Parse(String) Parse(String)

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

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

Комментарии

Параметр определяет элементы стиля (например, пробелы или знак плюса или минуса), которые разрешены s в параметре для успешной операции синтаксического анализа. styleThe 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] [$] [знак]цифры[. 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 и может NumberStyles.AllowTrailingWhite находиться в конце, если style включает флаг.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 , NumberStyles.AllowCurrencySymbol если style включает флаг.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Необязательный знак.An optional sign. (Метод создает исключение, OverflowException если s содержит знак минус и представляет ненулевое число.) Знак может присутствовать s в начале NumberStyles.AllowLeadingSign style style NumberStyles.AllowTrailingSign , если включает флаг, и может находиться в конце, Есливключаетфлаг.s(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 присутствовать в NumberStyles.AllowDecimalPoint , если style включает флаг.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.
EE Символ "e" или "E", указывающий, что значение представлено в экспоненциальной (экспоненциальной) нотации.The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe 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. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe 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 отдельные члены влияют на элементы, которые могут присутствовать в. sThe following table indicates how individual NumberStyles members affect the elements that may be present in s.

Несоставные NumberStyles значенияNon-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.

Если используется s флаг, то он должен быть шестнадцатеричным значением. NumberStyles.AllowHexSpecifierIf 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.HexNumberстиль составного числа, включающий оба флага пробела.) NumberStyles(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

Примечание

Если параметр является строковым представлением шестнадцатеричного числа, ему не может предшествовать любое декорирование ( 0x например, или &h), которое отличает его как шестнадцатеричное число. sIf 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.

GetFormat sПараметр — этоNumberFormatInfo реализация, метод которой возвращает объект, предоставляющий сведения о формате для определенного языка и региональных параметров. IFormatProvider providerThe 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) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Важно!

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

[System.CLSCompliant(false)]
public static ulong Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = null);
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

Параметры

Возвраты

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

Комментарии

Параметр определяет элементы стиля (такие как пробелы, символ знака разделителя группы или символ десятичной запятой), допустимые s в параметре для успешной операции синтаксического анализа. styleThe 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. Параметр делает перегрузку этого метода полезной s , если содержит строковое представление шестнадцатеричного значения, когда система счисления (десятичная s или шестнадцатеричная), представленная, известна только во время выполнения или когда style необходимо запретить пробелы или символы знака в 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] [$] [знак] [цифры,]цифры[. 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 и может NumberStyles.AllowTrailingWhite находиться в конце, если style включает флаг.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 и может NumberStyles.AllowTrailingSign находиться в конце, если style включает флаг.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 присутствовать в NumberStyles.AllowDecimalPoint , если style включает флаг.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.
EE Символ "e" или "E", указывающий, что значение представлено в экспоненциальной (экспоненциальной) нотации.The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe 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 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 the input string. В следующей таблице показано, как NumberStyles отдельные члены влияют на элементы, которые могут присутствовать в. sThe 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 значений, допускающих, но не требующих наличия определенных элементов стиля в 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.HexNumberстиль составного числа, включающий оба флага пробела.) NumberStyles(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.

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

Параметр анализируется с помощью сведений о форматировании System.Globalization.NumberFormatInfo в объекте, инициализированном для текущего языка и региональных параметров системы. sThe 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) Parse(String, IFormatProvider) Parse(String, IFormatProvider) 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 String String String

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

provider
IFormatProvider IFormatProvider IFormatProvider 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. Затем объект, принадлежащий этому CultureInfo объекту, передается Parse(String, IFormatProvider) методу UInt64 для преобразования входных данных пользователя в значение. NumberFormatInfoThe 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.

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

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

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