SByte.Parse SByte.Parse SByte.Parse SByte.Parse Method

Определение

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

Перегрузки

Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles)

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

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

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

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

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

Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider)

Важно!

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

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

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

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

Параметры

s
String String String String

Строка, содержащая преобразуемое число.A string that contains the number to convert. Строка интерпретируется с использованием стиля, указанного в style.The string is interpreted by using the style specified by style.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут быть представлены в параметре s.A bitwise combination of the enumeration values that indicates the style elements that can be present in s. Обычно указывается значение Integer.A typical value to specify is Integer.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект, который предоставляет сведения о форматировании параметра s в зависимости от языка и региональных параметров.An object that supplies culture-specific formatting information about s. Если значение параметра provider равно null, используются текущий язык и региональные параметры потока.If provider is null, the thread current culture is used.

Возвраты

8-битовое значение типа byte со знаком, эквивалентное числу, заданному в параметре s.An 8-bit signed byte value that is equivalent to the number specified in the s parameter.

Исключения

style не является значением NumberStyles.style is not a NumberStyles value.

- или --or- style не является сочетанием AllowHexSpecifier и HexNumber.style is not a combination of AllowHexSpecifier and HexNumber.

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

s не представлен в формате, совместимом с style.s is not in a format that is compliant with style.

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

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

Примеры

В следующем примере показано использование Parse(String, NumberStyles, IFormatProvider) метода для преобразования различных строковых представлений чисел в целочисленные значения со знаком.The following example illustrates the use of the Parse(String, NumberStyles, IFormatProvider) method to convert various string representations of numbers to signed integer values.

using System;
using System.Globalization;

public class SByteConversion
{
   NumberFormatInfo provider = NumberFormatInfo.CurrentInfo;

   public static void Main()
   {
      string stringValue;
      NumberStyles style;

      stringValue = "   123   ";
      style = NumberStyles.None;     
      CallParseOperation(stringValue, style);
      
      stringValue = "000,000,123";
      style = NumberStyles.Integer | NumberStyles.AllowThousands;
      CallParseOperation(stringValue, style);
      
      stringValue = "-100";
      style = NumberStyles.AllowLeadingSign;
      CallParseOperation(stringValue, style);
      
      stringValue = "100-";
      style = NumberStyles.AllowLeadingSign;
      CallParseOperation(stringValue, style);
      
      stringValue = "100-";
      style = NumberStyles.AllowTrailingSign;
      CallParseOperation(stringValue, style);
      
      stringValue = "$100";
      style = NumberStyles.AllowCurrencySymbol;
      CallParseOperation(stringValue, style);
      
      style = NumberStyles.Integer;
      CallParseOperation(stringValue, style);
      
      style = NumberStyles.AllowDecimalPoint;
      CallParseOperation("100.0", style);
      
      stringValue = "1e02";
      style = NumberStyles.AllowExponent;
      CallParseOperation(stringValue, style);
      
      stringValue = "(100)";
      style = NumberStyles.AllowParentheses;
      CallParseOperation(stringValue, style);
   }
   
   private static void CallParseOperation(string stringValue, 
                                          NumberStyles style)
   {                                          
      sbyte number;
      
      if (stringValue == null)
         Console.WriteLine("Cannot parse a null string...");
         
      try
      {
         number = sbyte.Parse(stringValue, style);
         Console.WriteLine("SByte.Parse('{0}', {1})) = {2}", 
                           stringValue, style, number);   
      }
      catch (FormatException)
      {
         Console.WriteLine("'{0}' and {1} throw a FormatException", 
                           stringValue, style);   
      }      
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is outside the range of a signed byte",
                           stringValue);
      }
   }
}
// The example displays the following information to the console:
//       '   123   ' and None throw a FormatException
//       SByte.Parse('000,000,123', Integer, AllowThousands)) = 123
//       SByte.Parse('-100', AllowLeadingSign)) = -100
//       '100-' and AllowLeadingSign throw a FormatException
//       SByte.Parse('100-', AllowTrailingSign)) = -100
//       SByte.Parse('$100', AllowCurrencySymbol)) = 100
//       '$100' and Integer throw a FormatException
//       SByte.Parse('100.0', AllowDecimalPoint)) = 100
//       SByte.Parse('1e02', AllowExponent)) = 100
//       SByte.Parse('(100)', AllowParentheses)) = -100
Imports System.Globalization

Module modMain
   Public Sub Main()
      Dim byteString As String 
      
      byteString = " 123"
      ParseString(byteString, NumberStyles.None)
      ParseString(byteString, NumberStyles.Integer)
      
      byteString = "3A"
      ParseString(byteString, NumberStyles.AllowHexSpecifier) 
      
      byteString = "21"
      ParseString(byteString, NumberStyles.Integer)
      ParseString(byteString, NumberStyles.AllowHexSpecifier)
      
      byteString = "-22"
      ParseString(byteString, NumberStyles.Integer)
      ParseString(byteString, NumberStyles.AllowParentheses)
      
      byteString = "(45)"
      ParseString(byteString, NumberStyles.AllowParentheses)
     
      byteString = "000,000,056"
      ParseString(byteString, NumberStyles.Integer)
      ParseString(byteString, NumberStyles.Integer Or NumberStyles.AllowThousands)
   End Sub
   
   Private Sub ParseString(value As String, style As NumberStyles)
      Dim number As SByte
      
      If value Is Nothing Then Console.WriteLine("Cannot parse a null string...") 
      
      Try
         number = SByte.Parse(value, style, NumberFormatInfo.CurrentInfo)
         Console.WriteLine("SByte.Parse('{0}', {1}) = {2}", value, style, number)   
      Catch e As FormatException
         Console.WriteLine("'{0}' and {1} throw a FormatException", value, style)   
      Catch e As OverflowException
         Console.WriteLine("'{0}' is outside the range of a signed byte",
                           value)
      End Try     
   End Sub
End Module
' The example displays the following information to the console:
'       ' 123' and None throw a FormatException
'       SByte.Parse(" 123", Integer)) = 123
'       SByte.Parse("3A", AllowHexSpecifier)) = 58
'       SByte.Parse("21", Integer)) = 21
'       SByte.Parse("21", AllowHexSpecifier)) = 33
'       SByte.Parse("-22", Integer)) = -22
'       '-22' and AllowParentheses throw a FormatException
'       SByte.Parse("(45)", AllowParentheses)) = -45
'       '000,000,056' and Integer throw a FormatException
'       SByte.Parse("000,000,056", Integer, AllowThousands)) = 56

Комментарии

Параметр определяет элементы стиля (например, пробелы или знак плюса или минуса), которые разрешены s в параметре для успешной операции синтаксического анализа. styleThe style parameter defines the style elements (such as white space or the positive or negative sign symbol) that are allowed in the s parameter for the parse operation to succeed. Он должен представлять собой сочетание битовых флагов из NumberStyles перечисления.It must be a combination of bit flags from the NumberStyles enumeration.

В зависимости от значения style s параметр может включать следующие элементы:Depending on the value of style, the s parameter may include the following elements:

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

Если style включается AllowHexSpecifier ,s параметр может включать следующие элементы:If style includes AllowHexSpecifier, the s parameter may include the following elements:

[WS] хексдигитс [WS][ws]hexdigits[ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space. Пробел может s присутствовать в начале, если style включает NumberStyles.AllowLeadingWhite флаг, s и может NumberStyles.AllowTrailingWhite находиться в конце, если style включает флаг.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Символ валюты, зависящий от языка и региональных параметров.A culture-specific currency symbol. Его расположение в строке определяется NumberFormatInfo.CurrencyPositivePattern свойством текущего языка и региональных параметров.Its position in the string is defined by the NumberFormatInfo.CurrencyPositivePattern property of the current culture. Символ валюты текущего языка и региональных параметров может отображаться s в style , если NumberStyles.AllowCurrencySymbol включает флаг.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Необязательный знак.An optional sign. Знак может присутствовать s в начале NumberStyles.AllowLeadingSign style style NumberStyles.AllowTrailingSign , если включает флаг, и может находиться в конце, Есливключаетфлаг.sThe sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear the end of s if style includes the NumberStyles.AllowTrailingSign flag. Круглые скобки могут использоваться в s , чтобы указать отрицательное значение style , если NumberStyles.AllowParentheses включает флаг.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9.
.. Символ десятичной запятой, зависящий от языка и региональных параметров.A culture-specific decimal point symbol. Символ десятичной запятой текущего языка и региональных параметров может s присутствовать в NumberStyles.AllowDecimalPoint , если style включает флаг.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional_digitsfractional_digits Одно или несколько вхождений цифры 0-9, если style NumberStyles.AllowExponent содержит флаг, или одно или несколько вхождений цифры 0, если это не так.One or more occurrences of the digit 0-9 if style includes the NumberStyles.AllowExponent flag, or one or more occurrences of the digit 0 if it does not. Дробные цифры могут использоваться только s в том style случае, NumberStyles.AllowDecimalPoint если включает флаг.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
EE Символ "e" или "E", указывающий, что значение представлено в экспоненциальной (экспоненциальной) нотации.The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponential_digitsexponential_digits Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
хексдигитсhexdigits Последовательность шестнадцатеричных цифр от 0 до f или от 0 до F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Примечание

Все завершающие символы NUL (U + 0000) в s игнорируются операцией синтаксического анализа, независимо от значения style аргумента.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Строка с десятичными цифрами (которая соответствует NumberStyles.None стилю) всегда будет успешно проанализирована.A string with decimal digits only (which corresponds to the NumberStyles.None style) always parses successfully. Большинство оставшихся NumberStyles элементов управляют элементами управления, которые могут присутствовать, но не обязательно должны присутствовать в этой входной строке.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in this input string. В следующей таблице показано, как NumberStyles отдельные члены влияют на элементы, которые могут присутствовать в. sThe following table indicates how individual NumberStyles members affect the elements that may be present in s.

Несоставные NumberStyles значенияNon-composite NumberStyles values Элементы, разрешенные в s в дополнение к цифрамElements permitted in s in addition to digits
NumberStyles.None Только десятичные цифры.Decimal digits only.
NumberStyles.AllowDecimalPoint Элементы десятичной запятой (.) и fractional_digits .The decimal point (.) and fractional_digits elements. Однако если Style не включает NumberStyles.AllowExponent флаг, fractional_digits должен состоять только из одной или более 0 цифр OverflowException ; в противном случае создается исключение.However, if style does not include the NumberStyles.AllowExponent flag, fractional_digits must consist of only one or more 0 digits; otherwise, an OverflowException is thrown.
NumberStyles.AllowExponent Символ "e" или "E", указывающий экспоненциальную нотацию, а также exponential_digits.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
NumberStyles.AllowLeadingWhite Элемент WS в начале s.The ws element at the beginning of s.
NumberStyles.AllowTrailingWhite Элемент WS в конце s.The ws element at the end of s.
NumberStyles.AllowLeadingSign Положительный знак перед цифрами.A positive sign before digits.
NumberStyles.AllowTrailingSign Положительный знак после цифр.A positive sign after digits.
NumberStyles.AllowParentheses Круглые скобки до и после цифр для обозначения отрицательного значения.Parentheses before and after digits to indicate a negative value.
NumberStyles.AllowThousands Элемент разделителя групп (,).The group separator (,) element. Несмотря на то, что разделитель групп sможет отображаться в, ему должен предшествовать только один или несколько цифр 0.Although the group separator can appear in s, it must be preceded by only one or more 0 digits.
NumberStyles.AllowCurrencySymbol Элемент Currency ($).The currency ($) element.

Если используется s флаг, то он должен быть шестнадцатеричным значением. NumberStyles.AllowHexSpecifierIf the NumberStyles.AllowHexSpecifier flag is used, s must be a hexadecimal value. Допустимые шестнадцатеричные цифры: 0-9, a-f и A-F.Valid hexadecimal digits are 0-9, a-f, and A-F. Единственными другими флагами, которые можно объединить с ним NumberStyles.AllowLeadingWhite , NumberStyles.AllowTrailingWhiteявляются и.The only other flags that can be combined with it are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (Перечисление включает в себя NumberStyles.HexNumberстиль составного числа, включающий оба флага пробела.) NumberStyles(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

Примечание

Если параметр является строковым представлением шестнадцатеричного числа, ему не может предшествовать любое декорирование ( 0x например, или &h), которое отличает его как шестнадцатеричное число. sIf the s parameter is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. В результате операция синтаксического анализа выдаст исключение.This causes the parse operation to throw an exception.

Если s представляет шестнадцатеричное число Parse(String, NumberStyles) , метод интерпретирует бит байт высокого порядка как бит знака.If s represents a hexadecimal number, the Parse(String, NumberStyles) method interprets the high-order bit of the byte as a sign bit.

GetFormat sПараметр — этоNumberFormatInfo реализация, метод которой возвращает объект, предоставляющий сведения о формате для определенного языка и региональных параметров. IFormatProvider providerThe provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. Существует три способа использования provider параметра для предоставления сведений о пользовательском форматировании операции синтаксического анализа:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Можно передать фактический NumberFormatInfo объект, предоставляющий сведения о форматировании.You can pass the actual NumberFormatInfo object that provides formatting information. (Его реализация GetFormat просто возвращает сам себя.)(Its implementation of GetFormat simply returns itself.)

  • Можно передать CultureInfo объект, указывающий язык и региональные параметры, форматирование которых будет использоваться.You can pass a CultureInfo object that specifies the culture whose formatting is to be used. Его NumberFormat свойство предоставляет сведения о форматировании.Its NumberFormat property provides formatting information.

  • Можно передать пользовательскую IFormatProvider реализацию.You can pass a custom IFormatProvider implementation. Его GetFormat метод должен создавать экземпляр и NumberFormatInfo возвращать объект, предоставляющий сведения о форматировании.Its GetFormat method must instantiate and return the NumberFormatInfo object that provides formatting information.

Если provider параметр nullимеет значение NumberFormatInfo , используется объект для текущего языка и региональных параметров.If provider is null, the NumberFormatInfo object for the current culture is used.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Важно!

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

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

Параметры

Возвраты

Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles)

Важно!

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

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

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

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

Параметры

s
String String String String

Строка, содержащая преобразуемое число.A string that contains a number to convert. Строка интерпретируется с использованием стиля, указанного в style.The string is interpreted using the style specified by style.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут быть представлены в параметре s.A bitwise combination of the enumeration values that indicates the style elements that can be present in s. Обычно указывается значение Integer.A typical value to specify is Integer.

Возвраты

8-битовое целое число со знаком, эквивалентное числу, указанному в параметре s.An 8-bit signed integer that is equivalent to the number specified in s.

Исключения

s не представлен в формате, совместимом с style.s is not in a format that is compliant with style.

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

- или --or- Параметр s включает дробные разряды, не равные нулю.s includes non-zero, fractional digits.

style не является значением NumberStyles.style is not a NumberStyles value.

- или --or- style не является сочетанием значений AllowHexSpecifier и HexNumber.style is not a combination of AllowHexSpecifier and HexNumber values.

Примеры

В следующем примере выполняется синтаксический анализ строковых SByte представлений значений Parse(String, NumberStyles) с помощью метода.The following example parses string representations of SByte values with the Parse(String, NumberStyles) method. Текущий язык и региональные параметры для примера — en-US.The current culture for the example is en-US.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      NumberStyles style;
      sbyte number;

      // Parse value with no styles allowed.
      string[] values1 = { " 121 ", "121", "-121" };
      style = NumberStyles.None;
      Console.WriteLine("Styles: {0}", style.ToString());
      foreach (string value in values1)
      {
         try {
            number = SByte.Parse(value, style);
            Console.WriteLine("   Converted '{0}' to {1}.", value, number);
         }   
         catch (FormatException) {
            Console.WriteLine("   Unable to parse '{0}'.", value);
         }
      }
      Console.WriteLine();
            
      // Parse value with trailing sign.
      style = NumberStyles.Integer | NumberStyles.AllowTrailingSign;
      string[] values2 = { " 103+", " 103 +", "+103", "(103)", "   +103  " };
      Console.WriteLine("Styles: {0}", style.ToString());
      foreach (string value in values2)
      {
         try {
            number = SByte.Parse(value, style);
            Console.WriteLine("   Converted '{0}' to {1}.", value, number);
         }   
         catch (FormatException) {
            Console.WriteLine("   Unable to parse '{0}'.", value);
         }      
         catch (OverflowException) {
            Console.WriteLine("   '{0}' is out of range of the SByte type.", value);         
         }
      }      
      Console.WriteLine();
   }
}
// The example displays the following output:
//       Styles: None
//          Unable to parse ' 121 '.
//          Converted '121' to 121.
//          Unable to parse '-121'.
//       
//       Styles: Integer, AllowTrailingSign
//          Converted ' 103+' to 103.
//          Converted ' 103 +' to 103.
//          Converted '+103' to 103.
//          Unable to parse '(103)'.
//          Converted '   +103  ' to 103.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim style As NumberStyles
      Dim number As SByte

      ' Parse value with no styles allowed.
      Dim values1() As String = { " 121 ", "121", "-121" }
      style = NumberStyles.None
      Console.WriteLine("Styles: {0}", style.ToString())
      For Each value As String In values1
         Try
            number = SByte.Parse(value, style)
            Console.WriteLine("   Converted '{0}' to {1}.", value, number)
         Catch e As FormatException
            Console.WriteLine("   Unable to parse '{0}'.", value)   
         End Try
      Next
      Console.WriteLine()
            
      ' Parse value with trailing sign.
      style = NumberStyles.Integer Or NumberStyles.AllowTrailingSign
      Dim values2() As String = { " 103+", " 103 +", "+103", "(103)", "   +103  " }
      Console.WriteLine("Styles: {0}", style.ToString())
      For Each value As String In values2
         Try
            number = SByte.Parse(value, style)
            Console.WriteLine("   Converted '{0}' to {1}.", value, number)
         Catch e As FormatException
            Console.WriteLine("   Unable to parse '{0}'.", value)   
         Catch e As OverflowException
            Console.WriteLine("   '{0}' is out of range of the SByte type.", value)         
         End Try
      Next      
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'       Styles: None
'          Unable to parse ' 121 '.
'          Converted '121' to 121.
'          Unable to parse '-121'.
'       
'       Styles: Integer, AllowTrailingSign
'          Converted ' 103+' to 103.
'          Converted ' 103 +' to 103.
'          Converted '+103' to 103.
'          Unable to parse '(103)'.
'          Converted '   +103  ' to 103.

Комментарии

Параметр определяет элементы стиля (например, пробелы или знак плюса или минуса), которые разрешены s в параметре для успешной операции синтаксического анализа. styleThe style parameter defines the style elements (such as white space or the positive or negative sign symbol) that are allowed in the s parameter for the parse operation to succeed. Он должен представлять собой сочетание битовых флагов из NumberStyles перечисления.It must be a combination of bit flags from the NumberStyles enumeration.

В зависимости от значения style s параметр может включать следующие элементы:Depending on the value of style, the s parameter may include the following elements:

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

При style NumberStyles.AllowHexSpecifier включенииs параметр может содержать следующие элементы:If style includes NumberStyles.AllowHexSpecifier, the s parameter may contain the following elements:

[WS] хексдигитс [WS][ws]hexdigits[ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space. Пробелы могут s присутствовать в начале, если style включает NumberStyles.AllowLeadingWhite флаг, s и может отображаться NumberStyles.AllowTrailingWhite в конце, если стиль включает флаг.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Символ валюты, зависящий от языка и региональных параметров.A culture-specific currency symbol. Его расположение в строке определяется NumberFormatInfo.CurrencyPositivePattern свойством текущего языка и региональных параметров.Its position in the string is defined by the NumberFormatInfo.CurrencyPositivePattern property of the current culture. Символ валюты текущего языка и региональных параметров может отображаться s в style , если NumberStyles.AllowCurrencySymbol включает флаг.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Необязательный знак.An optional sign. Знак может s присутствовать в начале, если style включает NumberStyles.AllowLeadingSign флаг, s и может NumberStyles.AllowTrailingSign находиться в конце, если style включает флаг.The sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingSign flag. Круглые скобки могут использоваться в s , чтобы указать отрицательное значение style , если NumberStyles.AllowParentheses включает флаг.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9.
.. Символ десятичной запятой, зависящий от языка и региональных параметров.A culture-specific decimal point symbol. Символ десятичной запятой текущего языка и региональных параметров может s присутствовать в NumberStyles.AllowDecimalPoint , если style включает флаг.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional_digitsfractional_digits Одно или несколько вхождений цифры 0-9, если style NumberStyles.AllowExponent содержит флаг, или одно или несколько вхождений цифры 0, если это не так.One or more occurrences of the digit 0-9 if style includes the NumberStyles.AllowExponent flag, or one or more occurrences of the digit 0 if it does not. Дробные цифры могут использоваться только s в том style случае, NumberStyles.AllowDecimalPoint если включает флаг.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
EE Символ "e" или "E", указывающий, что значение представлено в экспоненциальной (экспоненциальной) нотации.The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponential_digitsexponential_digits Одно или несколько вхождений цифры 0-9.One or more occurrences of the digit 0-9. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
хексдигитсhexdigits Последовательность шестнадцатеричных цифр от 0 до f или от 0 до F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Примечание

Все завершающие символы NUL (U + 0000) в s игнорируются операцией синтаксического анализа, независимо от значения style аргумента.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Строка с десятичными цифрами (которая соответствует NumberStyles.None стилю) всегда будет успешно проанализирована.A string with decimal digits only (which corresponds to the NumberStyles.None style) always parses successfully. Большинство оставшихся NumberStyles элементов управляют элементами управления, которые могут присутствовать, но не обязательно должны присутствовать во входной строке.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. В следующей таблице показано, как NumberStyles отдельные члены влияют на элементы, которые могут присутствовать в. sThe following table indicates how individual NumberStyles members affect the elements that may be present in s.

Несоставные значения NumberStylesNon-composite NumberStyles values Элементы, разрешенные в s в дополнение к цифрамElements permitted in s in addition to digits
NumberStyles.None Только десятичные цифры.Decimal digits only.
NumberStyles.AllowDecimalPoint Элементы десятичной запятой (.) и fractional_digits .The decimal point (.) and fractional_digits elements. Однако если style не NumberStyles.AllowExponent включает флаг, fractional_digits должен состоять только из одной или OverflowException нескольких цифр 0; в противном случае создается исключение.However, if style does not include the NumberStyles.AllowExponent flag, fractional_digits must consist of only one or more 0 digits; otherwise, an OverflowException is thrown.
NumberStyles.AllowExponent Символ "e" или "E", указывающий экспоненциальную нотацию, а также exponential_digits.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
NumberStyles.AllowLeadingWhite Элемент WS в начале s.The ws element at the beginning of s.
NumberStyles.AllowTrailingWhite Элемент WS в конце s.The ws element at the end of s.
NumberStyles.AllowLeadingSign Положительный знак перед цифрами.A positive sign before digits.
NumberStyles.AllowTrailingSign Положительный знак после цифр.A positive sign after digits.
NumberStyles.AllowParentheses Элемент Sign в виде круглых скобок, охватывающих числовое значение.The sign element in the form of parentheses enclosing the numeric value.
NumberStyles.AllowThousands Элемент разделителя групп (,).The group separator (,) element. Несмотря на то, что разделитель групп sможет отображаться в, ему должен предшествовать только один или несколько цифр 0.Although the group separator can appear in s, it must be preceded by only one or more 0 digits.
NumberStyles.AllowCurrencySymbol Элемент Currency ($).The currency ($) element.

Если используется s флаг, то он должен быть шестнадцатеричным значением. NumberStyles.AllowHexSpecifierIf the NumberStyles.AllowHexSpecifier flag is used, s must be a hexadecimal value. Допустимые шестнадцатеричные цифры: 0-9, a-f и A-F.Valid hexadecimal digits are 0-9, a-f, and A-F. Префикс, такой как 0x, не поддерживается и приводит к сбою операции синтаксического анализа.A prefix such as "0x" is not supported and causes the parse operation to fail. Единственными другими флагами, которые можно объединить в style , NumberStyles.AllowLeadingWhite являются NumberStyles.AllowTrailingWhiteи.The only other flags that can be combined included in style are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (Перечисление включает в себя NumberStyles.HexNumberстиль составного числа, включающий оба флага пробела.) NumberStyles(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

Примечание

Если параметр является строковым представлением шестнадцатеричного числа, ему не может предшествовать любое декорирование ( 0x например, или &h), которое отличает его как шестнадцатеричное число. sIf the s parameter is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. В результате операция синтаксического анализа выдаст исключение.This causes the parse operation to throw an exception.

Если s представляет шестнадцатеричное число Parse(String, NumberStyles) , метод интерпретирует бит байт высокого порядка как бит знака.If s represents a hexadecimal number, the Parse(String, NumberStyles) method interprets the high-order bit of the byte as a sign bit.

Параметр анализируется с помощью сведений о форматировании NumberFormatInfo в объекте, инициализированном для текущего языка и региональных параметров системы. sThe s parameter is parsed by using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. Чтобы использовать сведения о форматировании другого языка и региональных параметров, Parse(String, NumberStyles, IFormatProvider) вызовите перегрузку.To use the formatting information of some other culture, call the Parse(String, NumberStyles, IFormatProvider) overload.

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

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

Важно!

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

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

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

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

Параметры

s
String String String String

Строка, представляющая преобразуемое число.A string that represents a number to convert. Данная строка интерпретируется с использованием стиля Integer.The string is interpreted using the Integer style.

Возвраты

8-битовое целое число со знаком, эквивалентное числу, содержащемуся в параметре s.An 8-bit signed integer that is equivalent to the number contained in the s parameter.

Исключения

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

s не состоит из необязательного знака, за которым следует последовательность цифр (0–9).s does not consist of an optional sign followed by a sequence of digits (zero through nine).

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

Примеры

В следующем примере показано, как преобразовать строковое значение в значение байта со знаком с Parse помощью метода.The following example demonstrates how to convert a string value into a signed byte value using the Parse method. После этого в консоли отобразится полученное значение байта со знаком.The resulting signed byte value is then displayed to the console.

// Define an array of numeric strings.
string[] values = { "-16", "  -3", "+ 12", " +12 ", "  12  ",
                    "+120", "(103)", "192", "-160" };
                           
// Parse each string and display the result.
foreach (string value in values)
{
   try {
      Console.WriteLine("Converted '{0}' to the SByte value {1}.",
                        value, SByte.Parse(value));
   }
   catch (FormatException) {
      Console.WriteLine("'{0}' cannot be parsed successfully by SByte type.",
                        value);
   }                              
   catch (OverflowException) {
      Console.WriteLine("'{0}' is out of range of the SByte type.",
                        value);
   }                                                                        
}
// The example displays the following output:
//       Converted '-16' to the SByte value -16.
//       Converted '  -3' to the SByte value -3.
//       '+ 12' cannot be parsed successfully by SByte type.
//       Converted ' +12 ' to the SByte value 12.
//       Converted '  12  ' to the SByte value 12.
//       Converted '+120' to the SByte value 120.
//       '(103)' cannot be parsed successfully by SByte type.
//       '192' is out of range of the SByte type.
//       '-160' is out of range of the SByte type.
' Define an array of numeric strings.
Dim values() As String = { "-16", "  -3", "+ 12", " +12 ", "  12  ", _
                           "+120", "(103)", "192", "-160" }
                           
' Parse each string and display the result.
For Each value As String In values
   Try
      Console.WriteLine("Converted '{0}' to the SByte value {1}.", _
                        value, SByte.Parse(value))
   Catch e As FormatException
      Console.WriteLine("'{0}' cannot be parsed successfully by SByte type.", _
                        value)
   Catch e As OverflowException
      Console.WriteLine("'{0}' is out of range of the SByte type.", _
                        value)
   End Try                                                                        
Next        
' The example displays the following output:
'       Converted '-16' to the SByte value -16.
'       Converted '  -3' to the SByte value -3.
'       '+ 12' cannot be parsed successfully by SByte type.
'       Converted ' +12 ' to the SByte value 12.
'       Converted '  12  ' to the SByte value 12.
'       Converted '+120' to the SByte value 120.
'       '(103)' cannot be parsed successfully by SByte type.
'       '192' is out of range of the SByte type.
'       '-160' is out of range of the SByte type.

Комментарии

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

[WS] [Sign] цифры [WS][ws][sign]digits[ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space.
signsign Необязательный знак.An optional sign.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.

Параметр интерпретируется с использованием NumberStyles.Integer стиля. sThe s parameter is interpreted using the NumberStyles.Integer style. В дополнение к десятичным цифрам байтового значения разрешены только ведущие и замыкающие пробелы в начале положительного или отрицательного знака.In addition to the byte value's decimal digits, only leading and trailing spaces with a leading positive or negative sign are allowed. Чтобы явно определить элементы стиля, которые могут присутствовать в s, используйте Parse(String, NumberStyles) либо Parse(String, NumberStyles, IFormatProvider) метод, либо.To explicitly define the style elements that can be present in s, use either the Parse(String, NumberStyles) or the Parse(String, NumberStyles, IFormatProvider) method.

Параметр анализируется с помощью сведений о форматировании NumberFormatInfo в, которое инициализируется для текущего языка и региональных параметров системы. sThe s parameter is parsed by using the formatting information in a NumberFormatInfo that is initialized for the current system culture. Для получения дополнительной информации см. NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo. Чтобы выполнить синтаксический анализ строки с использованием сведений о форматировании другого языка и региональных Parse(String, NumberStyles, IFormatProvider) параметров, используйте метод.To parse a string by using the formatting information of some other culture, use the Parse(String, NumberStyles, IFormatProvider) method.

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

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

Важно!

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

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

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

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

Параметры

s
String String String String

Строка, представляющая преобразуемое число.A string that represents a number to convert. Данная строка интерпретируется с использованием стиля Integer.The string is interpreted using the Integer style.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект, который предоставляет сведения о форматировании параметра s в зависимости от языка и региональных параметров.An object that supplies culture-specific formatting information about s. Если значение параметра provider равно null, используются текущий язык и региональные параметры потока.If provider is null, the thread current culture is used.

Возвраты

8-битовое целое число со знаком, эквивалентное числу, указанному в параметре s.An 8-bit signed integer that is equivalent to the number specified in s.

Исключения

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

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

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

Примеры

В следующем примере определяется пользовательский NumberFormatInfo объект, определяющий тильду (~) как знак отрицательного числа.The following example defines a custom NumberFormatInfo object that defines the tilde (~) as the negative sign. Затем он анализирует ряд числовых строк, используя этот пользовательский NumberFormatInfo объект, а CultureInfo также объект, представляющий инвариантный язык и региональные параметры.It then parses a number of numeric strings using this custom NumberFormatInfo object as well as a CultureInfo object that represents the invariant culture.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      NumberFormatInfo nf = new NumberFormatInfo();
      nf.NegativeSign = "~"; 
      
      string[] values = { "-103", "+12", "~16", "  1", "~255" };
      IFormatProvider[] providers = { nf, CultureInfo.InvariantCulture };
      
      foreach (IFormatProvider provider in providers)
      {
         Console.WriteLine("Conversions using {0}:", ((object) provider).GetType().Name);
         foreach (string value in values)
         {
            try {
               Console.WriteLine("   Converted '{0}' to {1}.", 
                                 value, SByte.Parse(value, provider));
            }                     
            catch (FormatException) {
               Console.WriteLine("   Unable to parse '{0}'.", value);   
            }
            catch (OverflowException) {
               Console.WriteLine("   '{0}' is out of range of the SByte type.", value);         
            }
         }
      }      
   }
}
// The example displays the following output:
//       Conversions using NumberFormatInfo:
//          Unable to parse '-103'.
//          Converted '+12' to 12.
//          Converted '~16' to -16.
//          Converted '  1' to 1.
//          '~255' is out of range of the SByte type.
//       Conversions using CultureInfo:
//          Converted '-103' to -103.
//          Converted '+12' to 12.
//          Unable to parse '~16'.
//          Converted '  1' to 1.
//          Unable to parse '~255'.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim nf As New NumberFormatInfo()
      nf.NegativeSign = "~" 
      
      Dim values() As String = { "-103", "+12", "~16", "  1", "~255" }
      Dim providers() As IFormatProvider = { nf, CultureInfo.InvariantCulture }
      
      For Each provider As IFormatProvider In providers
         Console.WriteLine("Conversions using {0}:", CObj(provider).GetType().Name)
         For Each value As String In values
            Try
               Console.WriteLine("   Converted '{0}' to {1}.", _
                                 value, SByte.Parse(value, provider))
            Catch e As FormatException
               Console.WriteLine("   Unable to parse '{0}'.", value)   
            Catch e As OverflowException
               Console.WriteLine("   '{0}' is out of range of the SByte type.", value)         
            End Try
         Next
      Next      
   End Sub
End Module
' The example displays '
'       Conversions using NumberFormatInfo:
'          Unable to parse '-103'.
'          Converted '+12' to 12.
'          Converted '~16' to -16.
'          Converted '  1' to 1.
'          '~255' is out of range of the SByte type.
'       Conversions using CultureInfo:
'          Converted '-103' to -103.
'          Converted '+12' to 12.
'          Unable to parse '~16'.
'          Converted '  1' to 1.
'          Unable to parse '~255'.

Комментарии

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

[WS] [Sign] цифры [WS][ws][sign]digits[ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space.
signsign Необязательный знак.An optional sign.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.

Параметр интерпретируется с использованием Integer стиля. sThe s parameter is interpreted using the Integer style. Помимо десятичных знаков байтового значения, допускаются только ведущие и конечные пробелы с ведущим символом.In addition to the byte value's decimal digits, only leading and trailing spaces with a leading sign are allowed. Чтобы явно определить элементы стиля с данными форматирования, зависящими от языка и региональных параметров, которые sмогут присутствовать Parse(String, NumberStyles, IFormatProvider) в, используйте метод.To explicitly define the style elements with the culture-specific formatting information that can be present in s, use the Parse(String, NumberStyles, IFormatProvider) method.

GetFormat sПараметр — этоNumberFormatInfo реализация, метод которой возвращает объект, предоставляющий сведения о формате для определенного языка и региональных параметров. IFormatProvider providerThe provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. Существует три способа использования provider параметра для предоставления сведений о пользовательском форматировании операции синтаксического анализа:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Можно передать фактический NumberFormatInfo объект, предоставляющий сведения о форматировании.You can pass the actual NumberFormatInfo object that provides formatting information. (Его реализация GetFormat просто возвращает сам себя.)(Its implementation of GetFormat simply returns itself.)

  • Можно передать CultureInfo объект, указывающий язык и региональные параметры, форматирование которых будет использоваться.You can pass a CultureInfo object that specifies the culture whose formatting is to be used. Его NumberFormat свойство предоставляет сведения о форматировании.Its NumberFormat property provides formatting information.

  • Можно передать пользовательскую IFormatProvider реализацию.You can pass a custom IFormatProvider implementation. Его GetFormat метод должен создавать экземпляр и NumberFormatInfo возвращать объект, предоставляющий сведения о форматировании.Its GetFormat method must instantiate and return the NumberFormatInfo object that provides formatting information.

Если provider параметр nullимеет значение NumberFormatInfo , используется объект для текущего языка и региональных параметров.If provider is null, the NumberFormatInfo object for the current culture is used.

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

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