UInt16.TryParse Метод

Определение

Преобразует строковое представление числа в эквивалентное ему 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

Перегрузки

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt16)

Пытается проанализировать диапазон символов UTF-8 в значение.

TryParse(ReadOnlySpan<Char>, UInt16)

Пытается преобразовать представление числа в виде диапазона в эквивалентное ему 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

TryParse(String, UInt16)

Предпринимает попытку преобразования строкового представления числа в эквивалентное ему 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt16)

Пытается проанализировать диапазон символов в значение.

TryParse(String, IFormatProvider, UInt16)

Пытается проанализировать строку в значение.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt16)

Пытается проанализировать диапазон символов UTF-8 в значение.

TryParse(ReadOnlySpan<Byte>, UInt16)

Пытается преобразовать диапазон символов UTF-8, содержащий строковое представление числа, в эквивалентное 16-разрядное целое число без знака.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt16)

Пытается преобразовать представление числа в виде диапазона в формате, соответствующем определенному стилю, языку и региональным параметрам, в эквивалентное 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

TryParse(String, NumberStyles, IFormatProvider, UInt16)

Предпринимает попытку преобразовать строковое представление числа в формате, соответствующем стилю, языку и региональным параметрам, в эквивалентное 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt16)

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

Пытается проанализировать диапазон символов UTF-8 в значение.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = IUtf8SpanParsable<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As UShort) As Boolean

Параметры

utf8Text
ReadOnlySpan<Byte>

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

provider
IFormatProvider

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

result
UInt16

При возврате содержит результат успешного анализа utf8Text или неопределенное значение при сбое.

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

true Значение , если utf8Text анализ выполнен успешно; в противном случае — значение false.

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

TryParse(ReadOnlySpan<Char>, UInt16)

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

Важно!

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

Пытается преобразовать представление числа в виде диапазона в эквивалентное ему 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse (ReadOnlySpan<char> s, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, out ushort result);
static member TryParse : ReadOnlySpan<char> * uint16 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As UShort) As Boolean

Параметры

s
ReadOnlySpan<Char>

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

result
UInt16

При возвращении этим методом содержит 16-разрядное целочисленное значение без знака, эквивалентное числу, содержащемуся в параметре s, если преобразование выполнено успешно, или нуль, если оно завершилось сбоем. Преобразование завершается ошибкой, если параметр s имеет значение null или Empty (неверный формат). , или представляет число меньше UInt16.MinValue или больше UInt16.MaxValue. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в result, будет перезаписано.

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

Значение true, если параметр s успешно преобразован; в противном случае — значение false.

Атрибуты

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

TryParse(String, UInt16)

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

Важно!

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

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

Предпринимает попытку преобразования строкового представления числа в эквивалентное ему 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::UInt16 % result);
[System.CLSCompliant(false)]
public static bool TryParse (string s, out ushort result);
public static bool TryParse (string? s, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, out ushort result);
[<System.CLSCompliant(false)>]
static member TryParse : string * uint16 -> bool
static member TryParse : string * uint16 -> bool
Public Shared Function TryParse (s As String, ByRef result As UShort) As Boolean

Параметры

s
String

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

result
UInt16

При возвращении этим методом содержит 16-разрядное целочисленное значение без знака, эквивалентное числу, содержащемуся в параметре s, если преобразование выполнено успешно, или нуль, если оно завершилось сбоем. Преобразование завершается ошибкой s , если параметр имеет значение null или Empty, имеет неправильный формат или представляет число меньше UInt16.MinValue или больше UInt16.MaxValue. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в result, будет перезаписано.

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

Значение true, если параметр s успешно преобразован; в противном случае — значение false.

Атрибуты

Примеры

В следующем примере метод вызывается TryParse(String, UInt16) один раз для каждого элемента в массиве строк.

string[] numericStrings = { "1293.8", "+1671.7", "28347.",  
                            "   33113684  ", "(0)", "-0", "-1", 
                            "+1293617", "18-", "119870", "31,024", 
                            "  3127094 ", "00700000" };
uint number;
foreach (string numericString in numericStrings)
{
   if (UInt32.TryParse(numericString, out number)) 
      Console.WriteLine("Converted '{0}' to {1}.", numericString, number);
   else
      Console.WriteLine("Cannot convert '{0}' to a UInt32.", numericString);
}
// The example displays the following output:
//       Cannot convert '1293.8' to a UInt32.
//       Cannot convert '+1671.7' to a UInt32.
//       Cannot convert '28347.' to a UInt32.
//       Converted '   33113684  ' to 33113684.
//       Cannot convert '(0)' to a UInt32.
//       Converted '-0' to 0.
//       Cannot convert '-1' to a UInt32.
//       Converted '+1293617' to 1293617.
//       Cannot convert '18-' to a UInt32.
//       Converted '119870' to 119870.
//       Cannot convert '31,024' to a UInt32.
//       Converted '  3127094 ' to 3127094.
//       Converted '0070000' to 70000.
let numericStrings = 
    [| "1293.8"; "+1671.7"; "28347."
       "   33113684  "; "(0)"; "-0"; "-1" 
       "+1293617"; "18-"; "119870"; "31,024" 
       "  3127094 "; "00700000" |]

for numericString in numericStrings do
    match UInt32.TryParse numericString with
    | true, number ->
        printfn $"Converted '{numericString}' to {number}."
    | _ ->
        printfn $"Cannot convert '{numericString}' to a UInt32."
// The example displays the following output:
//       Cannot convert '1293.8' to a UInt32.
//       Cannot convert '+1671.7' to a UInt32.
//       Cannot convert '28347.' to a UInt32.
//       Converted '   33113684  ' to 33113684.
//       Cannot convert '(0)' to a UInt32.
//       Converted '-0' to 0.
//       Cannot convert '-1' to a UInt32.
//       Converted '+1293617' to 1293617.
//       Cannot convert '18-' to a UInt32.
//       Converted '119870' to 119870.
//       Cannot convert '31,024' to a UInt32.
//       Converted '  3127094 ' to 3127094.
//       Converted '0070000' to 70000.
Dim numericStrings() As String = {"1293.8", "+1671.7", "28347.", 
                                  "   33113684  ", "(0)", "-0", "-1",
                                  "+1293617", "18-", "119870", 
                                  "31,024", "  3127094 ", "0070000" }
Dim number As UInteger
For Each numericString As String In numericStrings
   If UInt32.TryParse(numericString, number) Then
      Console.WriteLine("Converted '{0}' to {1}.", numericString, number)
   Else
      Console.WriteLine("Cannot convert '{0}' to a UInt32.", numericString)
   End If      
Next
' The example displays the following output:
'       Cannot convert '1293.8' to a UInt32.
'       Cannot convert '+1671.7' to a UInt32.
'       Cannot convert '28347.' to a UInt32.
'       Converted '   33113684  ' to 33113684.
'       Cannot convert '(0)' to a UInt32.
'       Converted '-0' to 0.
'       Cannot convert '-1' to a UInt32.
'       Converted '+1293617' to 1293617.
'       Cannot convert '18-' to a UInt32.
'       Converted '119870' to 119870.
'       Cannot convert '31,024' to a UInt32.
'       Converted '  3127094 ' to 3127094.
'       Converted '0070000' to 70000.

Комментарии

Метод TryParse(String, UInt16) похож на Parse(String) метод , за исключением того, что он не создает исключение в случае сбоя преобразования. Этот метод избавляет от необходимости использовать обработку исключений, чтобы проверить, является ли s объект недопустимым FormatException и не может быть успешно проанализирован.

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

[ws] [знак] digits[ws]

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

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

Примечание

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

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

Параметр s анализируется с использованием сведений о форматировании в объекте NumberFormatInfo для текущего системного языка и региональных параметров. Для получения дополнительной информации см. NumberFormatInfo.CurrentInfo.

Эта перегрузка интерпретирует все цифры в параметре s как десятичные. Чтобы проанализировать строковое представление шестнадцатеричного числа, вызовите вместо этого перегрузку TryParse(String, NumberStyles, IFormatProvider, UInt16) .

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

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

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt16)

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

Пытается проанализировать диапазон символов в значение.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = ISpanParsable<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As UShort) As Boolean

Параметры

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

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

result
UInt16

При возврате этим методом содержит результат успешного анализа sили неопределенное значение при сбое.

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

true Значение , если s анализ выполнен успешно; в противном случае — значение false.

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

TryParse(String, IFormatProvider, UInt16)

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

Пытается проанализировать строку в значение.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = IParsable<System::UInt16>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out ushort result);
static member TryParse : string * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As UShort) As Boolean

Параметры

s
String

Строка для анализа.

provider
IFormatProvider

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

result
UInt16

При возврате этого метода содержит результат успешного анализа s или неопределенное значение при сбое.

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

true Значение , если s анализ выполнен успешно; в противном случае — значение false.

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

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt16)

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

Пытается проанализировать диапазон символов UTF-8 в значение.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean

Параметры

utf8Text
ReadOnlySpan<Byte>

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

style
NumberStyles

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

provider
IFormatProvider

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

result
UInt16

При возврате содержит результат успешного анализа utf8Text или неопределенное значение при сбое.

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

true Значение , если utf8Text анализ выполнен успешно; в противном случае — значение false.

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

TryParse(ReadOnlySpan<Byte>, UInt16)

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

Пытается преобразовать диапазон символов UTF-8, содержащий строковое представление числа, в эквивалентное 16-разрядное целое число без знака.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out ushort result);
static member TryParse : ReadOnlySpan<byte> * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As UShort) As Boolean

Параметры

utf8Text
ReadOnlySpan<Byte>

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

result
UInt16

При возврате этим методом содержит 16-разрядное целое число без знака, эквивалентное числу, содержамого в utf8Text , если преобразование выполнено успешно, или ноль, если преобразование завершилось сбоем. Этот параметр передается неинициализированным. Любое значение, первоначально предоставленное в результате, будет перезаписано.

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

Значение true, если параметр utf8Text успешно преобразован; в противном случае — значение false.

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

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt16)

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

Важно!

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

Пытается преобразовать представление числа в виде диапазона в формате, соответствующем определенному стилю, языку и региональным параметрам, в эквивалентное 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result);
public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean

Параметры

s
ReadOnlySpan<Char>

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

style
NumberStyles

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

provider
IFormatProvider

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

result
UInt16

При возвращении этим методом содержит 16-разрядное целочисленное значение без знака, эквивалентное числу, содержащемуся в параметре s, если преобразование выполнено успешно, или нуль, если оно завершилось сбоем. Преобразование завершается ошибкой s , если параметр имеет значение null или Empty, не соответствует формату styleили представляет число меньше UInt16.MinValue или больше UInt16.MaxValue. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в result, будет перезаписано.

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

Значение true, если параметр s успешно преобразован; в противном случае — значение false.

Атрибуты

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

TryParse(String, NumberStyles, IFormatProvider, UInt16)

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

Важно!

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

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

Предпринимает попытку преобразовать строковое представление числа в формате, соответствующем стилю, языку и региональным параметрам, в эквивалентное 16-битовое целое число без знака. Возвращает значение, указывающее, успешно ли выполнено преобразование.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out ushort result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean

Параметры

s
String

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

style
NumberStyles

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

provider
IFormatProvider

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

result
UInt16

При возвращении этим методом содержит 16-разрядное целочисленное значение без знака, эквивалентное числу, содержащемуся в параметре s, если преобразование выполнено успешно, или нуль, если оно завершилось сбоем. Преобразование завершается ошибкой s , если параметр имеет значение null или Empty, не соответствует формату styleили представляет число меньше UInt16.MinValue или больше UInt16.MaxValue. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в result, будет перезаписано.

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

Значение true, если параметр s успешно преобразован; в противном случае — значение false.

Атрибуты

Исключения

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

-или-

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

Примеры

В следующем примере метод вызывается TryParse(String, NumberStyles, IFormatProvider, UInt16) с несколькими различными строками и NumberStyles значениями.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;
      
      numericString = "10603";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);
      
      numericString = "-10603";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);
      
      numericString = "29103.00";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);
      
      numericString = "10345.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "2210E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles); 
      
      numericString = "9112E-01";
      CallTryParse(numericString, styles);
          
      numericString = "312E01";
      CallTryParse(numericString, styles); 
      
      numericString = "FFC8";
      CallTryParse(numericString, NumberStyles.HexNumber);
      
      numericString = "0x8F8C";
      CallTryParse(numericString, NumberStyles.HexNumber);
   }
   
   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      ushort number;
      bool result = UInt16.TryParse(stringToConvert, styles, 
                                   CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine($"Converted '{stringToConvert}' to {number}.");
      else
         Console.WriteLine($"Attempted conversion of '{stringToConvert}' failed.");
   }
}
// The example displays the following output:
//       Converted '10603' to 10603.
//       Attempted conversion of '-10603' failed.
//       Converted '29103.00' to 29103.
//       Attempted conversion of '10345.72' failed.
//       Converted '2210E-01' to 221.
//       Attempted conversion of '9112E-01' failed.
//       Converted '312E01' to 3120.
//       Converted 'FFC8' to 65480.
//       Attempted conversion of '0x8F8C' failed.
open System
open System.Globalization

let callTryParse (stringToConvert: string) (styles: NumberStyles) =
    match UInt16.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
    | true, number ->
        printfn $"Converted '{stringToConvert}' to {number}."
    | _ -> 
        printfn $"Attempted conversion of '{stringToConvert}' failed."

do
    let numericString = "10603"
    let styles = NumberStyles.Integer
    callTryParse numericString styles
    
    let numericString = "-10603"
    let styles = NumberStyles.None
    callTryParse numericString styles
    
    let numericString = "29103.00"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
    callTryParse numericString styles
    
    let numericString = "10345.72"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
    callTryParse numericString styles

    let numericString = "2210E-01"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
    callTryParse numericString styles
    
    let numericString = "9112E-01"
    callTryParse numericString styles
        
    let numericString = "312E01"
    callTryParse numericString styles
    
    let numericString = "FFC8"
    callTryParse numericString NumberStyles.HexNumber
    
    let numericString = "0x8F8C"
    callTryParse numericString NumberStyles.HexNumber
// The example displays the following output:
//       Converted '10603' to 10603.
//       Attempted conversion of '-10603' failed.
//       Converted '29103.00' to 29103.
//       Attempted conversion of '10345.72' failed.
//       Converted '2210E-01' to 221.
//       Attempted conversion of '9112E-01' failed.
//       Converted '312E01' to 3120.
//       Converted 'FFC8' to 65480.
//       Attempted conversion of '0x8F8C' failed.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim numericString As String
      Dim styles As NumberStyles
      
      numericString = "10603"
      styles = NumberStyles.Integer
      CallTryParse(numericString, styles)
      
      numericString = "-10603"
      styles = NumberStyles.None
      CallTryParse(numericString, styles)
      
      numericString = "29103.00"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)
      
      numericString = "10345.72"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)

      numericString = "2210E-01"
      styles = NumberStyles.Integer Or NumberStyles.AllowExponent
      CallTryParse(numericString, styles) 
      
      numericString = "9112E-01"
      CallTryParse(numericString, styles)
          
      numericString = "312E01"
      CallTryParse(numericString, styles) 
      
      numericString = "FFC8"
      CallTryParse(numericString, NumberStyles.HexNumber)
      
      numericString = "0x8F8C"
      CallTryParse(numericString, NumberStyles.HexNumber)
   End Sub
   
   Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
      Dim number As UShort
      Dim result As Boolean = UInt16.TryParse(stringToConvert, styles, _
                                              CultureInfo.InvariantCulture, number)
      If result Then
         Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number)
      Else
         Console.WriteLine("Attempted conversion of '{0}' failed.", _
                           Convert.ToString(stringToConvert))
      End If                                                                           
   End Sub
End Module
' The example displays the following output to the console:
'       Converted '10603' to 10603.
'       Attempted conversion of '-10603' failed.
'       Converted '29103.00' to 29103.
'       Attempted conversion of '10345.72' failed.
'       Converted '2210E-01' to 221.
'       Attempted conversion of '9112E-01' failed.
'       Converted '312E01' to 3120.
'       Converted 'FFC8' to 65480.
'       Attempted conversion of '0x8F8C' failed.

Комментарии

Метод TryParse(String, NumberStyles, IFormatProvider, UInt16) похож на Parse(String, NumberStyles, IFormatProvider) метод , за исключением того, что он не создает исключение в случае сбоя преобразования. Этот метод избавляет от необходимости использовать обработку исключений, чтобы проверить, является ли s объект недопустимым FormatException и не может быть успешно проанализирован.

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

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

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

[ws] hexdigits[ws]

Каждый из элементов описан в таблице ниже.

Ws Необязательный пробел. Пробел может отображаться в начале s , если style включает NumberStyles.AllowLeadingWhite флаг, или в конце s , если style включает NumberStyles.AllowTrailingWhite флаг.

$ Символ валюты, зависящий от языка и региональных параметров. Его положение в строке определяется свойством CurrencyPositivePattern объекта, NumberFormatInfo возвращаемого GetFormat методом provider параметра . Символ валюты может отображаться в , s если style включает NumberStyles.AllowCurrencySymbol флаг .

Знак Необязательный знак. Знак может отображаться в начале s , если style включает NumberStyles.AllowLeadingSign флаг, и в конце s , если style включает NumberStyles.AllowTrailingSign флаг. Круглые скобки можно использовать в s , чтобы указать отрицательное значение, если style включает флаг NumberStyles.AllowParentheses . Однако при наличии s отрицательного знака может представлять только нулевое значение для успешной операции синтаксического анализа.

Цифр Последовательность цифр от 0 до 9.

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

. Символ десятичной запятой для конкретного языка и региональных параметров. Символ десятичной запятой языка и региональных параметров, заданных параметром provider , может отображаться в s , если style включает флаг NumberStyles.AllowDecimalPoint .

fractional_digits Одно или несколько вхождений цифры 0. Дробные цифры могут отображаться в s , только если style включает NumberStyles.AllowDecimalPoint флаг .

E — символ "e" или "E", который указывает, что значение представлено в экспоненциальной (научной) нотации. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent .

exponential_digits Последовательность цифр от 0 до 9. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent .

hexdigits Последовательность шестнадцатеричных цифр от 0 до f или от 0 до F.

Примечание

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

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

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

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

Примечание

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

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

  • Объект CultureInfo , представляющий язык и региональные параметры, предоставляющие сведения о форматировании. Его GetFormat метод возвращает NumberFormatInfo объект , предоставляющий числовые сведения о форматировании для этого языка и региональных параметров.

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

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

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

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

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