Byte.Parse Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует строковое представление числа в его эквивалент типа Byte.
Перегрузки
Parse(String, NumberStyles, IFormatProvider) |
Преобразует строковое представление числа в указанном стиле и формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа Byte. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Преобразует представление числа в виде диапазона в указанном стиле и формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа Byte. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Анализирует диапазон символов UTF-8 в значение. |
Parse(String, IFormatProvider) |
Преобразует строковое представление числа в указанном формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа Byte. |
Parse(String, NumberStyles) |
Преобразует строковое представление числа с указанным стилем в его эквивалент в формате Byte. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Анализирует диапазон символов в значение. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Анализирует диапазон символов UTF-8 в значение. |
Parse(String) |
Преобразует строковое представление числа в его эквивалент типа Byte. |
Parse(String, NumberStyles, IFormatProvider)
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
Преобразует строковое представление числа в указанном стиле и формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа Byte.
public:
static System::Byte Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static System::Byte Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Byte>::Parse;
public static byte Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static byte Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> byte
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Byte
Параметры
- s
- String
Строка, содержащая преобразуемое число. Строка интерпретируется с использованием стиля, указанного в style
.
- style
- NumberStyles
Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут быть представлены в параметре s
. Обычно указывается значение Integer.
- provider
- IFormatProvider
Объект, который предоставляет сведения о формате параметра s
для определенного языка и региональных параметров. Если значение параметра provider
равно null
, используются текущий язык и региональные параметры потока.
Возвращаемое значение
Байтовое значение, эквивалентное числу, которое содержится в параметре s
.
Реализации
Исключения
s
имеет значение null
.
Формат параметра s
неправильный.
s
представляет число меньше Byte.MinValue или больше Byte.MaxValue.
-или-
s
содержит ненулевые дробные разряды.
style
не является значением NumberStyles.
-или-
style
не является сочетанием значений AllowHexSpecifier и HexNumber.
Примеры
В следующем примере кода выполняется анализ строковых представлений значений Byte
с помощью этой перегрузки Byte.Parse(String, NumberStyles, IFormatProvider) метода .
NumberStyles style;
CultureInfo^ culture;
String^ value;
Byte number;
// Parse number with decimals.
// NumberStyles.Float includes NumberStyles.AllowDecimalPoint.
style = NumberStyles::Float;
culture = CultureInfo::CreateSpecificCulture("fr-FR");
value = "12,000";
number = Byte::Parse(value, style, culture);
Console::WriteLine("Converted '{0}' to {1}.", value, number);
culture = CultureInfo::CreateSpecificCulture("en-GB");
try
{
number = Byte::Parse(value, style, culture);
Console::WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException^) {
Console::WriteLine("Unable to parse '{0}'.", value); }
value = "12.000";
number = Byte::Parse(value, style, culture);
Console::WriteLine("Converted '{0}' to {1}.", value, number);
// The example displays the following output to the console:
// Converted '12,000' to 12.
// Unable to parse '12,000'.
// Converted '12.000' to 12.
NumberStyles style;
CultureInfo culture;
string value;
byte number;
// Parse number with decimals.
// NumberStyles.Float includes NumberStyles.AllowDecimalPoint.
style = NumberStyles.Float;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
value = "12,000";
number = Byte.Parse(value, style, culture);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
culture = CultureInfo.CreateSpecificCulture("en-GB");
try
{
number = Byte.Parse(value, style, culture);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException) {
Console.WriteLine("Unable to parse '{0}'.", value); }
value = "12.000";
number = Byte.Parse(value, style, culture);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
// The example displays the following output to the console:
// Converted '12,000' to 12.
// Unable to parse '12,000'.
// Converted '12.000' to 12.
// Parse number with decimals.
// NumberStyles.Float includes NumberStyles.AllowDecimalPoint.
let style = NumberStyles.Float
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
let value = "12,000"
let number = Byte.Parse(value, style, culture)
printfn $"Converted '{value}' to {number}."
let culture = CultureInfo.CreateSpecificCulture "en-GB"
try
let number = Byte.Parse(value, style, culture)
printfn $"Converted '{value}' to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
let value = "12.000"
let number = Byte.Parse(value, style, culture)
printfn $"Converted '{value}' to {number}."
// The example displays the following output to the console:
// Converted '12,000' to 12.
// Unable to parse '12,000'.
// Converted '12.000' to 12.
Dim style As NumberStyles
Dim culture As CultureInfo
Dim value As String
Dim number As Byte
' Parse number with decimals.
' NumberStyles.Float includes NumberStyles.AllowDecimalPoint.
style = NumberStyles.Float
culture = CultureInfo.CreateSpecificCulture("fr-FR")
value = "12,000"
number = Byte.Parse(value, style, culture)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
culture = CultureInfo.CreateSpecificCulture("en-GB")
Try
number = Byte.Parse(value, style, culture)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
value = "12.000"
number = Byte.Parse(value, style, culture)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
' The example displays the following output to the console:
' Converted '12,000' to 12.
' Unable to parse '12,000'.
' Converted '12.000' to 12.
Комментарии
Параметр style
определяет элементы стиля (например, пробелы или положительный знак), которые разрешены в s
параметре для успешного выполнения операции синтаксического анализа. Это должно быть сочетание битовых флагов из перечисления NumberStyles . В зависимости от значения style
параметр s
может включать следующие элементы:
[ws] [$] [sign]digits[.fractional_digits][e[sign]digits][ws]
Или, если style
параметр включает :AllowHexSpecifier
[ws]hexdigits[ws]
Элементы в квадратных скобках ([и]) являются необязательными. Каждый из элементов описан в таблице ниже.
Элемент | Описание |
---|---|
ws | Необязательный пробел. Пробелы могут отображаться в начале , s если style включает NumberStyles.AllowLeadingWhite флаг, или в конце s , если style включает NumberStyles.AllowTrailingWhite флаг. |
$ | Символ валюты для конкретного языка и региональных параметров. Его положение в строке определяется свойством NumberFormatInfo.CurrencyPositivePattern объекта , NumberFormatInfo возвращаемого GetFormat методом provider параметра . Символ валюты может отображаться в , s если style содержит NumberStyles.AllowCurrencySymbol флаг . |
sign | Необязательный положительный знак. (Метод создает исключение , OverflowException если в 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, иначе OverflowException создается . |
NumberStyles.AllowExponent | Параметр s также может использовать экспоненциальную нотацию. |
NumberStyles.AllowLeadingWhite | Элемент ws в начале s . |
NumberStyles.AllowTrailingWhite | Элемент ws в конце s . |
NumberStyles.AllowLeadingSign | Положительный знак может отображаться перед цифрами. |
NumberStyles.AllowTrailingSign | После цифр может появиться положительный знак. |
NumberStyles.AllowParentheses | Хотя этот флаг поддерживается, использование круглых скобок приводит s к пометке OverflowException. |
NumberStyles.AllowThousands | Хотя символ разделителя групп может отображаться в s , ему может предшествовать только одна или несколько цифр 0. |
NumberStyles.AllowCurrencySymbol | Элемент $. |
NumberStyles.AllowHexSpecifier Если используется флаг , s
должно быть шестнадцатеричным значением без префикса. Например, "F3" успешно анализирует, а "0xF3" — нет. Единственными флагами, которые могут присутствовать в style
, являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite. (Перечисление NumberStyles имеет стиль составных чисел , NumberStyles.HexNumberкоторый включает оба флага пробелов.)
Параметр provider
является реализацией IFormatProvider , такой как NumberFormatInfo объект или CultureInfo . Параметр provider
предоставляет сведения, относящиеся к языку и региональным параметрам, используемые при синтаксическом анализе. Если значение параметра provider
равно null
, используются текущий язык и региональные параметры потока.
См. также раздел
- ToString()
- MaxValue
- MinValue
- NumberStyles
- NumberFormatInfo
- IFormatProvider
- Типы форматирования в .NET
Применяется к
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
Преобразует представление числа в виде диапазона в указанном стиле и формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа Byte.
public static byte Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
public static byte Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> byte
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Byte
Параметры
- s
- ReadOnlySpan<Char>
Диапазон, содержащий символы, которые представляют преобразуемое значение.
- style
- NumberStyles
Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут быть представлены в параметре s
. Обычно указывается значение Integer.
- provider
- IFormatProvider
Объект, который предоставляет сведения о формате параметра s
для определенного языка и региональных параметров. Если значение параметра provider
равно null
, используются текущий язык и региональные параметры потока.
Возвращаемое значение
Байтовое значение, эквивалентное числу, которое содержится в параметре s
.
Реализации
Применяется к
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
Анализирует диапазон символов UTF-8 в значение.
public static byte Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> byte
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Byte
Параметры
- utf8Text
- ReadOnlySpan<Byte>
Диапазон символов UTF-8 для анализа.
- style
- NumberStyles
Побитовое сочетание стилей чисел, которые могут присутствовать в utf8Text
.
- provider
- IFormatProvider
Объект, предоставляющий сведения о форматировании параметра utf8Text
в зависимости от языка и региональных параметров.
Возвращаемое значение
Результат анализа utf8Text
.
Реализации
Применяется к
Parse(String, IFormatProvider)
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
Преобразует строковое представление числа в указанном формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа Byte.
public:
static System::Byte Parse(System::String ^ s, IFormatProvider ^ provider);
public:
static System::Byte Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::Byte>::Parse;
public static byte Parse (string s, IFormatProvider provider);
public static byte Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> byte
Public Shared Function Parse (s As String, provider As IFormatProvider) As Byte
Параметры
- s
- String
Строка, содержащая преобразуемое число. Данная строка интерпретируется с использованием стиля Integer.
- provider
- IFormatProvider
Объект, который предоставляет сведения об анализе параметра s
для определенного языка и региональных параметров. Если значение параметра provider
равно null
, используются текущий язык и региональные параметры потока.
Возвращаемое значение
Байтовое значение, эквивалентное числу, которое содержится в параметре s
.
Реализации
Исключения
s
имеет значение null
.
Формат параметра s
неправильный.
s
представляет число меньше Byte.MinValue или больше Byte.MaxValue.
Примеры
В следующем примере выполняется анализ строковых представлений значений Byte
с помощью Parse метода .
String^ stringToConvert;
Byte byteValue;
stringToConvert = " 214 ";
try {
byteValue = Byte::Parse(stringToConvert, CultureInfo::InvariantCulture);
Console::WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue);
}
catch (FormatException^) {
Console::WriteLine("Unable to parse '{0}'.", stringToConvert); }
catch (OverflowException^) {
Console::WriteLine("'{0}' is greater than {1} or less than {2}.",
stringToConvert, Byte::MaxValue, Byte::MinValue); }
stringToConvert = " + 214 ";
try {
byteValue = Byte::Parse(stringToConvert, CultureInfo::InvariantCulture);
Console::WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue);
}
catch (FormatException^) {
Console::WriteLine("Unable to parse '{0}'.", stringToConvert); }
catch (OverflowException^) {
Console::WriteLine("'{0}' is greater than {1} or less than {2}.",
stringToConvert, Byte::MaxValue, Byte::MinValue); }
stringToConvert = " +214 ";
try {
byteValue = Byte::Parse(stringToConvert, CultureInfo::InvariantCulture);
Console::WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue);
}
catch (FormatException^) {
Console::WriteLine("Unable to parse '{0}'.", stringToConvert); }
catch (OverflowException^) {
Console::WriteLine("'{0}' is greater than {1} or less than {2}.",
stringToConvert, Byte::MaxValue, Byte::MinValue); }
// The example displays the following output to the console:
// Converted ' 214 ' to 214.
// Unable to parse ' + 214 '.
// Converted ' +214 ' to 214.
string stringToConvert;
byte byteValue;
stringToConvert = " 214 ";
try {
byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture);
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue);
}
catch (FormatException) {
Console.WriteLine("Unable to parse '{0}'.", stringToConvert); }
catch (OverflowException) {
Console.WriteLine("'{0}' is greater than {1} or less than {2}.",
stringToConvert, Byte.MaxValue, Byte.MinValue); }
stringToConvert = " + 214 ";
try {
byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture);
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue);
}
catch (FormatException) {
Console.WriteLine("Unable to parse '{0}'.", stringToConvert); }
catch (OverflowException) {
Console.WriteLine("'{0}' is greater than {1} or less than {2}.",
stringToConvert, Byte.MaxValue, Byte.MinValue); }
stringToConvert = " +214 ";
try {
byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture);
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue);
}
catch (FormatException) {
Console.WriteLine("Unable to parse '{0}'.", stringToConvert); }
catch (OverflowException) {
Console.WriteLine("'{0}' is greater than {1} or less than {2}.",
stringToConvert, Byte.MaxValue, Byte.MinValue); }
// The example displays the following output to the console:
// Converted ' 214 ' to 214.
// Unable to parse ' + 214 '.
// Converted ' +214 ' to 214.
let stringToConvert = " 214 "
try
let byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture)
printfn $"Converted '{stringToConvert}' to {byteValue}."
with
| :? FormatException ->
printfn $"Unable to parse '{stringToConvert}'."
| :? OverflowException ->
printfn $"'{stringToConvert}' is greater than {Byte.MaxValue} or less than {Byte.MinValue}."
let stringToConvert = " + 214 "
try
let byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture)
printfn $"Converted '{stringToConvert}' to {byteValue}."
with
| :? FormatException ->
printfn $"Unable to parse '{stringToConvert}'."
| :? OverflowException ->
printfn $"'{stringToConvert}' is greater than {Byte.MaxValue} or less than {Byte.MinValue}."
let stringToConvert = " +214 "
try
let byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture)
printfn $"Converted '{stringToConvert}' to {byteValue}."
with
| :? FormatException ->
printfn $"Unable to parse '{stringToConvert}'."
| :? OverflowException ->
printfn $"'{stringToConvert}' is greater than {Byte.MaxValue} or less than {Byte.MinValue}."
// The example displays the following output to the console:
// Converted ' 214 ' to 214.
// Unable to parse ' + 214 '.
// Converted ' +214 ' to 214.
Dim stringToConvert As String
Dim byteValue As Byte
stringToConvert = " 214 "
Try
byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture)
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", stringToConvert)
Catch e As OverflowException
Console.WriteLine("'{0}' is greater than {1} or less than {2}.", _
stringToConvert, Byte.MaxValue, Byte.MinValue)
End Try
stringToConvert = " + 214 "
Try
byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture)
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", stringToConvert)
Catch e As OverflowException
Console.WriteLine("'{0}' is greater than {1} or less than {2}.", _
stringToConvert, Byte.MaxValue, Byte.MinValue)
End Try
stringToConvert = " +214 "
Try
byteValue = Byte.Parse(stringToConvert, CultureInfo.InvariantCulture)
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", stringToConvert)
Catch e As OverflowException
Console.WriteLine("'{0}' is greater than {1} or less than {2}.", _
stringToConvert, Byte.MaxValue, Byte.MinValue)
End Try
' The example displays the following output to the console:
' Converted ' 214 ' to 214.
' Unable to parse ' + 214 '.
' Converted ' +214 ' to 214.
Комментарии
Параметр s
содержит число форм:
[ws] [sign]digits[ws]
Элементы в квадратных скобках ([и]) являются необязательными. Каждый из элементов описан в таблице ниже.
Элемент | Описание |
---|---|
ws | Необязательный пробел. |
sign | Необязательный положительный знак. |
digits | Последовательность цифр в диапазоне от 0 до 9. |
Параметр s
интерпретируется с помощью Integer стиля . В дополнение к десятичным цифрам байтового значения допускаются только начальные и конечные пробелы вместе со знаком "в начале". (Если знак присутствует, он должен быть положительным знаком, иначе метод вызывает OverflowExceptionисключение .) Чтобы явно определить элементы стиля вместе со сведениями о форматировании для конкретного языка и региональных параметров, которые могут присутствовать в s
, используйте Byte.Parse(String, NumberStyles, IFormatProvider) метод .
Параметр s
анализируется с помощью сведений о форматировании в объекте , предоставленном provider
NumberFormatInfo . Параметр provider
является реализацией, IFormatProvider такой как NumberFormatInfo объект или CultureInfo . Параметр provider
предоставляет сведения о языке и региональных параметрах, используемых при анализе. Если значение параметра provider
равно null
, используются текущий язык и региональные параметры потока.
См. также раздел
- ToString()
- TryParse
- MaxValue
- MinValue
- NumberStyles
- NumberFormatInfo
- IFormatProvider
- Типы форматирования в .NET
Применяется к
Parse(String, NumberStyles)
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
Преобразует строковое представление числа с указанным стилем в его эквивалент в формате Byte.
public:
static System::Byte Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static byte Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> byte
Public Shared Function Parse (s As String, style As NumberStyles) As Byte
Параметры
- s
- String
Строка, содержащая преобразуемое число. Строка интерпретируется с использованием стиля, указанного в style
.
- style
- NumberStyles
Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут быть представлены в параметре s
. Обычно указывается значение Integer.
Возвращаемое значение
Байтовое значение, эквивалентное числу, которое содержится в параметре s
.
Исключения
s
имеет значение null
.
Формат параметра s
неправильный.
s
представляет число меньше Byte.MinValue или больше Byte.MaxValue.
-или-
s
содержит ненулевые дробные разряды.
style
не является значением NumberStyles.
-или-
style
не является сочетанием значений AllowHexSpecifier и HexNumber.
Примеры
В следующем примере выполняется анализ строковых представлений значений Byte
с помощью Byte.Parse(String, NumberStyles) метода . Текущий язык и региональные параметры для примера — en-US.
String^ value;
NumberStyles style;
Byte number;
// Parse value with no styles allowed.
style = NumberStyles::None;
value = " 241 ";
try
{
number = Byte::Parse(value, style);
Console::WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException^) {
Console::WriteLine("Unable to parse '{0}'.", value); }
// Parse value with trailing sign.
style = NumberStyles::Integer | NumberStyles::AllowTrailingSign;
value = " 163+";
number = Byte::Parse(value, style);
Console::WriteLine("Converted '{0}' to {1}.", value, number);
// Parse value with leading sign.
value = " +253 ";
number = Byte::Parse(value, style);
Console::WriteLine("Converted '{0}' to {1}.", value, number);
// This example displays the following output to the console:
// Unable to parse ' 241 '.
// Converted ' 163+' to 163.
// Converted ' +253 ' to 253.
string value;
NumberStyles style;
byte number;
// Parse value with no styles allowed.
style = NumberStyles.None;
value = " 241 ";
try
{
number = Byte.Parse(value, style);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException) {
Console.WriteLine("Unable to parse '{0}'.", value); }
// Parse value with trailing sign.
style = NumberStyles.Integer | NumberStyles.AllowTrailingSign;
value = " 163+";
number = Byte.Parse(value, style);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
// Parse value with leading sign.
value = " +253 ";
number = Byte.Parse(value, style);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
// This example displays the following output to the console:
// Unable to parse ' 241 '.
// Converted ' 163+' to 163.
// Converted ' +253 ' to 253.
// Parse value with no styles allowed.
let style = NumberStyles.None
let value = " 241 "
try
let number = Byte.Parse(value, style);
printfn $"Converted '{value}' to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Parse value with trailing sign.
let style = NumberStyles.Integer ||| NumberStyles.AllowTrailingSign
let value = " 163+"
let number = Byte.Parse(value, style)
printfn $"Converted '{value}' to {number}."
// Parse value with leading sign.
let value = " +253 "
let number = Byte.Parse(value, style)
printfn $"Converted '{value}' to {number}."
// This example displays the following output to the console:
// Unable to parse ' 241 '.
// Converted ' 163+' to 163.
// Converted ' +253 ' to 253.
Dim value As String
Dim style As NumberStyles
Dim number As Byte
' Parse value with no styles allowed.
style = NumberStyles.None
value = " 241 "
Try
number = Byte.Parse(value, style)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Parse value with trailing sign.
style = NumberStyles.Integer Or NumberStyles.AllowTrailingSign
value = " 163+"
number = Byte.Parse(value, style)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
' Parse value with leading sign.
value = " +253 "
number = Byte.Parse(value, style)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
' This example displays the following output to the console:
' Unable to parse ' 241 '.
' Converted ' 163+' to 163.
' Converted ' +253 ' to 253.
Комментарии
Параметр 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 текущего языка и региональных параметров. Символ валюты текущего языка и региональных параметров может отображаться в s , если style включает NumberStyles.AllowCurrencySymbol флаг . |
sign | Необязательный положительный знак. (Метод вызывает исключение , OverflowException если в s присутствует отрицательный знак .) Знак может отображаться в начале s , если style включает NumberStyles.AllowLeadingSign флаг, или в конце s , если style включает NumberStyles.AllowTrailingSign флаг. |
digits | Последовательность цифр от 0 до 9. |
. | Символ десятичной запятой для конкретного языка и региональных параметров. Символ десятичной запятой текущего языка и региональных параметров может отображаться в 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, иначе OverflowException возникает исключение . |
NumberStyles.AllowExponent | Параметр s также может использовать экспоненциальную нотацию. |
NumberStyles.AllowLeadingWhite | Элемент ws в начале s . |
NumberStyles.AllowTrailingWhite | Элемент ws в конце s . |
NumberStyles.AllowLeadingSign | Положительный знак может отображаться перед цифрами. |
NumberStyles.AllowTrailingSign | После цифр может появиться положительный знак. |
NumberStyles.AllowParentheses | Хотя этот флаг поддерживается, использование круглых скобок s приводит к пометке OverflowException. |
NumberStyles.AllowThousands | Хотя символ разделителя групп может отображаться в s , ему может предшествовать только одна или несколько цифр 0. |
NumberStyles.AllowCurrencySymbol | Элемент $. |
NumberStyles.AllowHexSpecifier Если флаг используется, s
должно быть шестнадцатеричным значением без префикса. Например, "F3" анализируется успешно, а "0xF3" — нет. Единственными другими флагами, которые могут быть объединены с ним, являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite. (Перечисление NumberStyles включает стиль составных чисел , NumberStyles.HexNumberкоторый включает оба флага пробелов.)
Параметр s
анализируется с помощью сведений о форматировании в объекте NumberFormatInfo , инициализированном для текущего системного языка и региональных параметров. Чтобы использовать сведения о форматировании некоторых других языков и региональных параметров, вызовите перегрузку Byte.Parse(String, NumberStyles, IFormatProvider) .
См. также раздел
- ToString()
- TryParse
- MaxValue
- MinValue
- NumberStyles
- NumberFormatInfo
- IFormatProvider
- Типы форматирования в .NET
Применяется к
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
Анализирует диапазон символов в значение.
public:
static System::Byte Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Byte>::Parse;
public static byte Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> byte
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Byte
Параметры
- s
- ReadOnlySpan<Char>
Диапазон символов для анализа.
- provider
- IFormatProvider
Объект, предоставляющий сведения о форматировании параметра s
в зависимости от языка и региональных параметров.
Возвращаемое значение
Результат анализа s
.
Реализации
Применяется к
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
Анализирует диапазон символов UTF-8 в значение.
public:
static System::Byte Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Byte>::Parse;
public static byte Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> byte
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Byte
Параметры
- utf8Text
- ReadOnlySpan<Byte>
Диапазон символов UTF-8 для анализа.
- provider
- IFormatProvider
Объект, предоставляющий сведения о форматировании параметра utf8Text
в зависимости от языка и региональных параметров.
Возвращаемое значение
Результат анализа utf8Text
.
Реализации
Применяется к
Parse(String)
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
- Исходный код:
- Byte.cs
Преобразует строковое представление числа в его эквивалент типа Byte.
public:
static System::Byte Parse(System::String ^ s);
public static byte Parse (string s);
static member Parse : string -> byte
Public Shared Function Parse (s As String) As Byte
Параметры
- s
- String
Строка, содержащая преобразуемое число. Данная строка интерпретируется с использованием стиля Integer.
Возвращаемое значение
Байтовое значение, эквивалентное числу, которое содержится в параметре s
.
Исключения
s
имеет значение null
.
Формат параметра s
неправильный.
s
представляет число меньше Byte.MinValue или больше Byte.MaxValue.
Примеры
В следующем примере показано, как преобразовать строковое значение в байтовое значение с помощью Byte.Parse(String) метода . Полученное значение байта затем отображается в консоли.
String^ stringToConvert = " 162";
Byte byteValue;
try
{
byteValue = Byte::Parse(stringToConvert);
Console::WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue);
}
catch (FormatException^)
{
Console::WriteLine("Unable to parse '{0}'.", stringToConvert);
}
catch (OverflowException^)
{
Console::WriteLine("'{0}' is greater than {1} or less than {2}.",
stringToConvert, Byte::MaxValue, Byte::MinValue);
}
// The example displays the following output to the console:
// Converted ' 162' to 162.
string stringToConvert = " 162";
byte byteValue;
try
{
byteValue = Byte.Parse(stringToConvert);
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", stringToConvert);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is greater than {1} or less than {2}.",
stringToConvert, Byte.MaxValue, Byte.MinValue);
}
// The example displays the following output to the console:
// Converted ' 162' to 162.
let stringToConvert = " 162"
try
let byteValue = Byte.Parse stringToConvert
printfn $"Converted '{stringToConvert}' to {byteValue}."
with
| :? FormatException ->
printfn $"Unable to parse '{stringToConvert}'."
| :? OverflowException ->
printfn $"'{stringToConvert}' is greater than {Byte.MaxValue} or less than {Byte.MinValue}."
// The example displays the following output to the console:
// Converted ' 162' to 162.
Dim stringToConvert As String = " 162"
Dim byteValue As Byte
Try
byteValue = Byte.Parse(stringToConvert)
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, byteValue)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", stringToConvert)
Catch e As OverflowException
Console.WriteLine("'{0}' is greater than {1} or less than {2}.", _
stringToConvert, Byte.MaxValue, Byte.MinValue)
End Try
' The example displays the following output to the console:
' Converted ' 162' to 162.
Комментарии
Параметр s
содержит номер формы:
[ws] [sign]digits[ws]
Элементы в квадратных скобках ([и]) являются необязательными. Каждый из элементов описан в таблице ниже.
Элемент | Описание |
---|---|
ws | Необязательный пробел. |
sign | Необязательный положительный или отрицательный знак. |
digits | Последовательность цифр в диапазоне от 0 до 9. |
Параметр s
интерпретируется с помощью NumberStyles.Integer стиля . В дополнение к десятичным цифрам байтового значения допускаются только начальные и конечные пробелы вместе со знаком в начале. (Если знак присутствует, он должен быть положительным знаком, иначе метод вызывает OverflowExceptionисключение .) Чтобы явно определить элементы стиля, которые могут присутствовать в s
, используйте Byte.Parse(String, NumberStyles) метод или Byte.Parse(String, NumberStyles, IFormatProvider) .
Параметр s
анализируется с помощью сведений о форматировании в объекте NumberFormatInfo , инициализированном для текущего системного языка и региональных параметров. Для получения дополнительной информации см. CurrentInfo. Чтобы проанализировать строку, используя сведения о форматировании других языков и региональных параметров, используйте Byte.Parse(String, NumberStyles, IFormatProvider) метод .
См. также раздел
- ToString()
- MaxValue
- MinValue
- NumberStyles
- NumberFormatInfo
- Синтаксический анализ числовых строк в .NET
- Типы форматирования в .NET