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

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


Byte.TryParse Метод

Определение

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

Перегрузки

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Byte)

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

TryParse(ReadOnlySpan<Char>, Byte)

Пытается преобразовать представление числа в виде диапазона в его эквивалент типа Byte и возвращает значение, которое указывает на то, успешно ли выполнено преобразование.

TryParse(String, Byte)

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

TryParse(ReadOnlySpan<Char>, IFormatProvider, Byte)

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

TryParse(String, IFormatProvider, Byte)

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

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

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

TryParse(ReadOnlySpan<Byte>, Byte)

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

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

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

TryParse(String, NumberStyles, IFormatProvider, Byte)

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

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Byte)

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

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

public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out byte result);

Параметры

utf8Text
ReadOnlySpan<Byte>

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

provider
IFormatProvider

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

result
Byte

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

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

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

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

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

TryParse(ReadOnlySpan<Char>, Byte)

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

Пытается преобразовать представление числа в виде диапазона в его эквивалент типа Byte и возвращает значение, которое указывает на то, успешно ли выполнено преобразование.

public static bool TryParse(ReadOnlySpan<char> s, out byte result);

Параметры

s
ReadOnlySpan<Char>

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

result
Byte

При возврате этого метода содержит значение Byte, эквивалентное числу, содержащемуся в параметре s, если преобразование выполнено успешно, или ноль, если оно завершилось неудачей. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в result, будет перезаписано.

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

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

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

.NET 10 и другие версии
Продукт Версии
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.1

TryParse(String, Byte)

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

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

public static bool TryParse(string s, out byte result);
public static bool TryParse(string? s, out byte result);

Параметры

s
String

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

result
Byte

При возврате этого метода содержит значение Byte, эквивалентное числу, содержащемуся в параметре s, если преобразование выполнено успешно, или ноль, если оно завершилось неудачей. Этот параметр передается неинициализированным; любое значение, первоначально предоставленное в result, будет перезаписано.

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

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

Примеры

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

using System;

public class ByteConversion
{
   public static void Main()
   {
      string[] byteStrings = { null, string.Empty, "1024",
                               "100.1", "100", "+100", "-100",
                               "000000000000000100", "00,100",
                               "   20   ", "FF", "0x1F" };

      foreach (var byteString in byteStrings)
      {
          CallTryParse(byteString);
      }
   }

   private static void CallTryParse(string stringToConvert)
   {
      byte byteValue;
      bool success = Byte.TryParse(stringToConvert, out byteValue);
      if (success)
      {
         Console.WriteLine("Converted '{0}' to {1}",
                        stringToConvert, byteValue);
      }
      else
      {
         Console.WriteLine("Attempted conversion of '{0}' failed.",
                           stringToConvert);
      }
   }
}
// The example displays the following output to the console:
//       Attempted conversion of '' failed.
//       Attempted conversion of '' failed.
//       Attempted conversion of '1024' failed.
//       Attempted conversion of '100.1' failed.
//       Converted '100' to 100
//       Converted '+100' to 100
//       Attempted conversion of '-100' failed.
//       Converted '000000000000000100' to 100
//       Attempted conversion of '00,100' failed.
//       Converted '   20   ' to 20
//       Attempted conversion of 'FF' failed.
//       Attempted conversion of '0x1F' failed.

Комментарии

Преобразование завершается ошибкой, и метод возвращает значение false , если s параметр имеет неправильный формат, если он имеет null значение или String.Empty, или если он представляет число меньше MinValue или больше MaxValue.

Метод Byte.TryParse(String, Byte) аналогичен методу Byte.Parse(String) , за исключением того, что TryParse(String, Byte) не создает исключение в случае сбоя преобразования.

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

[ws][sign]digits[ws]

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

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

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

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

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

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

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

.NET 10 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

TryParse(ReadOnlySpan<Char>, IFormatProvider, Byte)

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

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

public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out byte result);

Параметры

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

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

result
Byte

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

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

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

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

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

TryParse(String, IFormatProvider, Byte)

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

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

public static bool TryParse(string? s, IFormatProvider? provider, out byte result);

Параметры

s
String

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

provider
IFormatProvider

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

result
Byte

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

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

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

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

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

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

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

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

public static bool TryParse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out byte result);

Параметры

utf8Text
ReadOnlySpan<Byte>

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

style
NumberStyles

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

provider
IFormatProvider

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

result
Byte

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

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

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

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

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

TryParse(ReadOnlySpan<Byte>, Byte)

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

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

public static bool TryParse(ReadOnlySpan<byte> utf8Text, out byte result);

Параметры

utf8Text
ReadOnlySpan<Byte>

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

result
Byte

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

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

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

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

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

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

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

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

public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out byte result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out byte result);

Параметры

s
ReadOnlySpan<Char>

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

style
NumberStyles

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

provider
IFormatProvider

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

result
Byte

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

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

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

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

.NET 10 и другие версии
Продукт Версии
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.1

TryParse(String, NumberStyles, IFormatProvider, Byte)

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

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

public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out byte result);
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out byte result);

Параметры

s
String

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

style
NumberStyles

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

provider
IFormatProvider

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

result
Byte

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

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

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

Исключения

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

-или-

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

Примеры

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

using System;
using System.Globalization;

public class ByteConversion2
{
   public static void Main()
   {
      string byteString;
      NumberStyles styles;

      byteString = "1024";
      styles = NumberStyles.Integer;
      CallTryParse(byteString, styles);

      byteString = "100.1";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(byteString, styles);

      byteString = "100.0";
      CallTryParse(byteString, styles);

      byteString = "+100";
      styles = NumberStyles.Integer | NumberStyles.AllowLeadingSign
               | NumberStyles.AllowTrailingSign;
      CallTryParse(byteString, styles);

      byteString = "-100";
      CallTryParse(byteString, styles);

      byteString = "000000000000000100";
      CallTryParse(byteString, styles);

      byteString = "00,100";
      styles = NumberStyles.Integer | NumberStyles.AllowThousands;
      CallTryParse(byteString, styles);

      byteString = "2E+3   ";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(byteString, styles);

      byteString = "FF";
      styles = NumberStyles.HexNumber;
      CallTryParse(byteString, styles);

      byteString = "0x1F";
      CallTryParse(byteString, styles);
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      Byte byteValue;
      bool result = Byte.TryParse(stringToConvert, styles,
                                  null as IFormatProvider, out byteValue);
      if (result)
         Console.WriteLine("Converted '{0}' to {1}",
                        stringToConvert, byteValue);
      else
         Console.WriteLine("Attempted conversion of '{0}' failed.",
                           stringToConvert.ToString());
   }
}
// The example displays the following output to the console:
//       Attempted conversion of '1024' failed.
//       Attempted conversion of '100.1' failed.
//       Converted '100.0' to 100
//       Converted '+100' to 100
//       Attempted conversion of '-100' failed.
//       Converted '000000000000000100' to 100
//       Converted '00,100' to 100
//       Attempted conversion of '2E+3   ' failed.
//       Converted 'FF' to 255
//       Attempted conversion of '0x1F' failed.

Комментарии

Метод TryParse похож на Parse метод , за исключением того TryParse , что метод не создает исключение в случае сбоя преобразования.

Параметр s анализируется с помощью сведений о форматировании в объекте, NumberFormatInfo предоставленном параметром provider .

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

[ws] [$] [sign]digits[.fractional_digits][e[sign]digits][ws]

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

[ws]hexdigits[ws]

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

Элемент Описание
ws Необязательный пробел. Пробелы могут отображаться в начале , s если style включает NumberStyles.AllowLeadingWhite флаг, или в конце , если стиль включает NumberStyles.AllowTrailingWhite флаг.
$ Символ валюты для конкретного языка и региональных параметров. Его положение в строке определяется свойством NumberFormatInfo.CurrencyPositivePattern объекта , NumberFormatInfo возвращаемого GetFormat методом provider параметра . Символ валюты может отображаться в , s если style содержит NumberStyles.AllowCurrencySymbol флаг .
sign Необязательный положительный знак. (Операция синтаксического анализа завершается ошибкой, если в sприсутствует отрицательный знак.) Знак может отображаться в начале , s если style включает NumberStyles.AllowLeadingSign флаг, или в конце s , если style включает NumberStyles.AllowTrailingSign флаг .
digits Последовательность цифр от 0 до 9.
. Символ десятичной запятой для конкретного языка и региональных параметров. Символ десятичной запятой языка и региональных параметров, заданных параметром , provider может отображаться в , s если style включает флаг NumberStyles.AllowDecimalPoint .
fractional_digits Одно или несколько вхождений цифры 0. Дробные цифры могут отображаться в s , только если style включает NumberStyles.AllowDecimalPoint флаг .
e Символ e или E, который указывает, что значение представлено в экспоненциальной нотации. Параметр s может представлять число в экспоненциальной нотации, если style включает флаг NumberStyles.AllowExponent .
hexdigits Последовательность шестнадцатеричных цифр от 0 до f или от 0 до F.

Примечание

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

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

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

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

Параметр provider представляет собой реализацию IFormatProvider , например CultureInfo объект или NumberFormatInfo объект , метод которой GetFormat возвращает NumberFormatInfo объект . Объект NumberFormatInfo предоставляет сведения о формате s.

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

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

.NET 10 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0