UInt16.Parse Метод

Определение

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

Перегрузки

Parse(String, NumberStyles, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

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

Parse(String, NumberStyles)

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

Этот метод несовместим с CLS.This method is not CLS-compliant. CLS-совместимая альтернатива — Parse(String, NumberStyles).The CLS-compliant alternative is Parse(String, NumberStyles).

Parse(String)

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

Parse(String, IFormatProvider)

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

Parse(String, NumberStyles, IFormatProvider)

Важно!

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

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

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

public:
 static System::UInt16 Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static ushort Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> uint16
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As UShort

Параметры

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 indicate 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.

Возвраты

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

Атрибуты

Исключения

Свойство s имеет значение null.s 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.s is not in a format compliant with style.

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

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

Примеры

В следующем примере метод Parse(String, NumberStyles, IFormatProvider) используется для преобразования различных строковых представлений чисел в 16-разрядные целочисленные значения без знака.The following example uses the Parse(String, NumberStyles, IFormatProvider) method to convert various string representations of numbers to 16-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 = { "1702", "+1702.0", "+1702,0", "-1032.00",
                          "-1032,00", "1045.1", "1045,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, 
                                    UInt16.Parse(value, style, ci));
               }                                    
               catch (FormatException) {
                  Console.WriteLine("      Unable to parse '{0}'.", value);   
               }
               catch (OverflowException) {
                  Console.WriteLine("      '{0}' is out of range of the UInt16 type.", 
                                    value);
               }
            }
         }
      }   
   }
}
// The example displays the following output:
//       Parsing strings using the English (United States) culture
//          Style: Integer
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Unable to parse '+1702,0'.
//             Unable to parse '-1032.00'.
//             Unable to parse '-1032,00'.
//             Unable to parse '1045.1'.
//             Unable to parse '1045,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '1702' to 1702.
//             Converted '+1702.0' to 1702.
//             Unable to parse '+1702,0'.
//             '-1032.00' is out of range of the UInt16 type.
//             Unable to parse '-1032,00'.
//             '1045.1' is out of range of the UInt16 type.
//             Unable to parse '1045,1'.
//       Parsing strings using the French (France) culture
//          Style: Integer
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Unable to parse '+1702,0'.
//             Unable to parse '-1032.00'.
//             Unable to parse '-1032,00'.
//             Unable to parse '1045.1'.
//             Unable to parse '1045,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Converted '+1702,0' to 1702.
//             Unable to parse '-1032.00'.
//             '-1032,00' is out of range of the UInt16 type.
//             Unable to parse '1045.1'.
//             '1045,1' is out of range of the UInt16 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 = { "1702", "+1702.0", "+1702,0", "-1032.00", _
                                 "-1032,00", "1045.1", "1045,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, _
                                    UInt16.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 UInt16 type.", _
                                    value)         
               End Try
            Next
         Next
      Next                                    
   End Sub
End Module
' The example displays the following output:
'       Parsing strings using the English (United States) culture
'          Style: Integer
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Unable to parse '+1702,0'.
'             Unable to parse '-1032.00'.
'             Unable to parse '-1032,00'.
'             Unable to parse '1045.1'.
'             Unable to parse '1045,1'.
'          Style: Integer, AllowDecimalPoint
'             Converted '1702' to 1702.
'             Converted '+1702.0' to 1702.
'             Unable to parse '+1702,0'.
'             '-1032.00' is out of range of the UInt16 type.
'             Unable to parse '-1032,00'.
'             '1045.1' is out of range of the UInt16 type.
'             Unable to parse '1045,1'.
'       Parsing strings using the French (France) culture
'          Style: Integer
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Unable to parse '+1702,0'.
'             Unable to parse '-1032.00'.
'             Unable to parse '-1032,00'.
'             Unable to parse '1045.1'.
'             Unable to parse '1045,1'.
'          Style: Integer, AllowDecimalPoint
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Converted '+1702,0' to 1702.
'             Unable to parse '-1032.00'.
'             '-1032,00' is out of range of the UInt16 type.
'             Unable to parse '1045.1'.
'             '1045,1' is out of range of the UInt16 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.
EE Символ "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. Префикс, такой как 0x, не поддерживается и приводит к сбою операции синтаксического анализа.Valid hexadecimal digits are 0 through 9, a through f, and A through F. A prefix, such as "0x", is not supported and causes the parse operation to fail. Единственными другими флагами, которые можно сочетать с NumberStyles.AllowHexSpecifier, являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite.The only other flags that can be combined with NumberStyles.AllowHexSpecifier 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.

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

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

Параметры

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 indicate 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.

Возвраты

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

Атрибуты

Parse(String, NumberStyles)

Важно!

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

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

Этот метод несовместим с CLS.This method is not CLS-compliant. CLS-совместимая альтернатива — Parse(String, NumberStyles).The CLS-compliant alternative is Parse(String, NumberStyles).

public:
 static System::UInt16 Parse(System::String ^ s, System::Globalization::NumberStyles style);
[System.CLSCompliant(false)]
public static ushort Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> uint16
Public Shared Function Parse (s As String, style As NumberStyles) As UShort

Параметры

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 specify the permitted format of s. Обычно указывается значение Integer.A typical value to specify is Integer.

Возвраты

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

Атрибуты

Исключения

Свойство s имеет значение null.s 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.s is not in a format compliant with style.

s представляет число, которое меньше значения MinValue или больше значения MaxValue.s 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 = { " 214 ", "1,064", "(0)", "1241+", " + 214 ", " +214 ", "2153.0", "1e03", "1300.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 {
               ushort number = UInt16.Parse(value, style);
               Console.WriteLine("   {0}: {1}", style, number);
            }   
            catch (FormatException) {
               Console.WriteLine("   {0}: Bad Format", style);
            }
         }
         Console.WriteLine();
      }
   }
}
// The example display the following output:
//    Attempting to convert ' 214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: 214
//       Integer, AllowTrailingSign: 214
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1,064':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: 1064
//       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 '1241+':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 1241
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' + 214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' +214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 214
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '2153.0':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 2153
//    
//    Attempting to convert '1e03':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 1000
//    
//    Attempting to convert '1300.0e-2':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 13
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim values() As String = { " 214 ", "1,064", "(0)", "1241+", " + 214 ", " +214 ", "2153.0", "1e03", "1300.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 UShort = UInt16.Parse(value, style)
               Console.WriteLine("   {0}: {1}", style, number)
            Catch e As FormatException
               Console.WriteLine("   {0}: Bad Format", style)
            End Try         
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'    Attempting to convert ' 214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: 214
'       Integer, AllowTrailingSign: 214
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '1,064':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: 1064
'       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 '1241+':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: 1241
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert ' + 214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert ' +214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: 214
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '2153.0':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 2153
'    
'    Attempting to convert '1e03':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 1000
'    
'    Attempting to convert '1300.0e-2':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 13

Комментарии

Параметр 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.
EE Символ "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) всегда будет успешно проанализирована, если она находится в диапазоне типа UInt16.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully if it is in the range of the UInt16 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.Int32.Parse(String)

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

public:
 static System::UInt16 Parse(System::String ^ s);
[System.CLSCompliant(false)]
public static ushort Parse (string s);
static member Parse : string -> uint16
Public Shared Function Parse (s As String) As UShort

Параметры

s
String

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

Возвраты

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

Атрибуты

Исключения

Свойство s имеет значение null.s is null.

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

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

Примеры

В следующем примере вызывается метод Parse(String) для преобразования каждого элемента в массиве строк в 16-разрядное целое число без знака.The following example calls the Parse(String) method to convert each element in a string array to an unsigned 16-bit integer.

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "-0", "17", "-12", "185", "66012", "+0", 
                          "", null, "16.1", "28.0", "1,034" };
      foreach (string value in values)
      {
         try {
            ushort number = UInt16.Parse(value);
            Console.WriteLine("'{0}' --> {1}", value, number);
         }
         catch (FormatException) {
            Console.WriteLine("'{0}' --> Bad Format", value);
         }
         catch (OverflowException) {   
            Console.WriteLine("'{0}' --> OverflowException", value);
         }
         catch (ArgumentNullException) {
            Console.WriteLine("'{0}' --> Null", value);
         }
      }                                 
   }
}
// The example displays the following output:
//       '-0' --> 0
//       '17' --> 17
//       '-12' --> OverflowException
//       '185' --> 185
//       '66012' --> OverflowException
//       '+0' --> 0
//       '' --> Bad Format
//       '' --> Null
//       '16.1' --> Bad Format
//       '28.0' --> Bad Format
//       '1,034' --> Bad Format
Module Example
   Public Sub Main()
      Dim values() As String = { "-0", "17", "-12", "185", "66012", _ 
                                 "+0", "", Nothing, "16.1", "28.0", _
                                 "1,034" }
      For Each value As String In values
         Try
            Dim number As UShort = UInt16.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}' --> OverflowException", value)
         Catch e As ArgumentNullException
            Console.WriteLine("'{0}' --> Null", value)
         End Try
      Next                                 
   End Sub
End Module
' The example displays the following output:
'       '-0' --> 0
'       '17' --> 17
'       '-12' --> OverflowException
'       '185' --> 185
'       '66012' --> OverflowException
'       '+0' --> 0
'       '' --> Bad Format
'       '' --> Null
'       '16.1' --> Bad Format
'       '28.0' --> Bad Format
'       '1,034' --> Bad Format

Комментарии

Параметр 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.Int32.Parse(String)

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

public:
 static System::UInt16 Parse(System::String ^ s, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static ushort Parse (string s, IFormatProvider provider);
static member Parse : string * IFormatProvider -> uint16
Public Shared Function Parse (s As String, provider As IFormatProvider) As UShort

Параметры

s
String

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

provider
IFormatProvider

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

Возвраты

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

Атрибуты

Исключения

snull.s is null.

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

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

Примеры

В следующем примере создается экземпляр пользовательского языка и региональных параметров, в котором используется два знака «плюс» (+ +) в качестве положительного знака.The following example instantiates a custom culture that uses two plus signs (++) as its positive sign. Затем он вызывает метод Parse(String, IFormatProvider) для синтаксического анализа массива строк с помощью CultureInfo объектов, которые представляют как пользовательский, так и инвариантный язык и региональные параметры.It then calls the Parse(String, IFormatProvider) method to parse an array of strings by using CultureInfo objects that represent both this custom culture and the invariant culture.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Define a custom culture that uses "++" as a positive sign. 
      CultureInfo ci = new CultureInfo("");
      ci.NumberFormat.PositiveSign = "++";
      // Create an array of cultures.
      CultureInfo[] cultures = { ci, CultureInfo.InvariantCulture };
      // Create an array of strings to parse.
      string[] values = { "++1403", "-0", "+0", "+16034", 
                          Int16.MinValue.ToString(), "14.0", "18012" };
      // Parse the strings using each culture.
      foreach (CultureInfo culture in cultures)
      {
         Console.WriteLine("Parsing with the '{0}' culture.", culture.Name);
         foreach (string value in values)
         {
            try {
               ushort number = UInt16.Parse(value, culture);
               Console.WriteLine("   Converted '{0}' to {1}.", value, number);
            }
            catch (FormatException) {
               Console.WriteLine("   The format of '{0}' is invalid.", value);
            }
            catch (OverflowException) {
               Console.WriteLine("   '{0}' is outside the range of a UInt16 value.", value);
            }               
         }
      }
   }
}
// The example displays the following output:
//       Parsing with the  culture.
//          Converted '++1403' to 1403.
//          Converted '-0' to 0.
//          The format of '+0' is invalid.
//          The format of '+16034' is invalid.
//          '-32768' is outside the range of a UInt16 value.
//          The format of '14.0' is invalid.
//          Converted '18012' to 18012.
//       Parsing with the '' culture.
//          The format of '++1403' is invalid.
//          Converted '-0' to 0.
//          Converted '+0' to 0.
//          Converted '+16034' to 16034.
//          '-32768' is outside the range of a UInt16 value.
//          The format of '14.0' is invalid.
//          Converted '18012' to 18012.
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Define a custom culture that uses "++" as a positive sign. 
      Dim ci As CultureInfo = New CultureInfo("")
      ci.NumberFormat.PositiveSign = "++"
      ' Create an array of cultures.
      Dim cultures() As CultureInfo = { ci, CultureInfo.InvariantCulture }
      ' Create an array of strings to parse.
      Dim values() As String = { "++1403", "-0", "+0", "+16034", _
                                 Int16.MinValue.ToString(), "14.0", "18012" }
      ' Parse the strings using each culture.
      For Each culture As CultureInfo In cultures
         Console.WriteLine("Parsing with the '{0}' culture.", culture.Name)
         For Each value As String In values
            Try
               Dim number As UShort = UInt16.Parse(value, culture)
               Console.WriteLine("   Converted '{0}' to {1}.", value, number)
            Catch e As FormatException
               Console.WriteLine("   The format of '{0}' is invalid.", value)
            Catch e As OverflowException
               Console.WriteLine("   '{0}' is outside the range of a UInt16 value.", value)
            End Try               
         Next
      Next
   End Sub
End Module
' The example displays the following output:
'       Parsing with the  culture.
'          Converted '++1403' to 1403.
'          Converted '-0' to 0.
'          The format of '+0' is invalid.
'          The format of '+16034' is invalid.
'          '-32768' is outside the range of a UInt16 value.
'          The format of '14.0' is invalid.
'          Converted '18012' to 18012.
'       Parsing with the '' culture.
'          The format of '++1403' is invalid.
'          Converted '-0' to 0.
'          Converted '+0' to 0.
'          Converted '+16034' to 16034.
'          '-32768' is outside the range of a UInt16 value.
'          The format of '14.0' is invalid.
'          Converted '18012' to 18012.

Комментарии

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

[WS] [Sign] цифры[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 sign, or a negative sign if s represents the value zero.
цифрыdigits Последовательность цифр в диапазоне от 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 byte 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.

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

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