SByte.Parse Método

Definición

Convierte la representación en forma de cadena de un número en el entero de 8 bits con signo equivalente.Converts the string representation of a number to its 8-bit signed integer equivalent.

Sobrecargas

Parse(String, NumberStyles, IFormatProvider)

Convierte la representación en forma de cadena de un número con el estilo y el formato específico de la referencia cultural que se hayan especificado en el entero de 8 bits con signo equivalente.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)

Convierte la representación de intervalo de un número con el estilo y el formato específicos de la referencia cultural que se hayan especificado en el entero de 8 bits con signo equivalente.Converts the span representation of a number that is in a specified style and culture-specific format to its 8-bit signed equivalent.

Parse(String, NumberStyles)

Convierte la representación en forma de cadena de un número con el estilo especificado en el entero de 8 bits con signo equivalente.Converts the string representation of a number in a specified style to its 8-bit signed integer equivalent.

Parse(String)

Convierte la representación en forma de cadena de un número en el entero de 8 bits con signo equivalente.Converts the string representation of a number to its 8-bit signed integer equivalent.

Parse(String, IFormatProvider)

Convierte la representación en forma de cadena de un número en el formato específico de la referencia cultural que se haya especificado en el entero de 8 bits con signo equivalente.Converts the string representation of a number in a specified culture-specific format to its 8-bit signed integer equivalent.

Parse(String, NumberStyles, IFormatProvider)

Importante

Esta API no es conforme a CLS.

Alternativa conforme a CLS
System.Int16.Parse(String, NumberStyles, IFormatProvider)

Convierte la representación en forma de cadena de un número con el estilo y el formato específico de la referencia cultural que se hayan especificado en el entero de 8 bits con signo equivalente.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

Parámetros

s
String

Cadena que contiene el número que se va a convertir.A string that contains the number to convert. La cadena se interpreta usando el estilo especificado por style.The string is interpreted by using the style specified by style.

style
NumberStyles

Combinación bit a bit de los valores de enumeración que indica los elementos de estilo que pueden estar presentes en s.A bitwise combination of the enumeration values that indicates the style elements that can be present in s. Un valor que se especifica de forma habitual es Integer.A typical value to specify is Integer.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural acerca de s.An object that supplies culture-specific formatting information about s. Si provider es null, se usa la referencia cultural actual del subproceso.If provider is null, the thread current culture is used.

Devoluciones

Un valor con signo de 8 bits que es equivalente al número especificado en el parámetro s.An 8-bit signed byte value that is equivalent to the number specified in the s parameter.

Atributos

Excepciones

style no es un valor NumberStyles.style is not a NumberStyles value.

O bien-or- style no es una combinación de AllowHexSpecifier y HexNumber.style is not a combination of AllowHexSpecifier and HexNumber.

s es null.s is null.

s no está en un formato compatible con style.s is not in a format that is compliant with style.

s representa un número menor que MinValue o mayor que MaxValue.s represents a number that is less than MinValue or greater than MaxValue.

o bien-or- s incluye dígitos fraccionarios distintos de cero.s includes non-zero, fractional digits.

Ejemplos

En el ejemplo siguiente se muestra el uso del método Parse(String, NumberStyles, IFormatProvider) para convertir diversas representaciones de cadena de números en valores enteros con signo.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

Comentarios

El parámetro style define los elementos de estilo (como el espacio en blanco o el símbolo de signo positivo o negativo) que se permiten en el parámetro s para que la operación de análisis se realice correctamente.The style parameter defines the style elements (such as white space or the positive or negative sign symbol) that are allowed in the s parameter for the parse operation to succeed. Debe ser una combinación de marcas de bits de la enumeración NumberStyles.It must be a combination of bit flags from the NumberStyles enumeration.

Dependiendo del valor de style, el parámetro s puede incluir los siguientes elementos:Depending on the value of style, the s parameter may include the following elements:

[ws][$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws][ws][$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]

Si style incluye AllowHexSpecifier, el parámetro s puede incluir los siguientes elementos:If style includes AllowHexSpecifier, the s parameter may include the following elements:

[WS] hexdigits[WS][ws]hexdigits[ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space. Puede aparecer un espacio en blanco al principio de s si style incluye la marca NumberStyles.AllowLeadingWhite y puede aparecer al final de s si style incluye la marca 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.
$ Un símbolo de divisa específico de la referencia cultural.A culture-specific currency symbol. La propiedad NumberFormatInfo.CurrencyPositivePattern de la referencia cultural actual define su posición en la cadena.Its position in the string is defined by the NumberFormatInfo.CurrencyPositivePattern property of the current culture. El símbolo de divisa de la referencia cultural actual puede aparecer en s si style incluye la marca NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un signo opcional.An optional sign. El signo puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingSign y puede aparecer al final de s si style incluye la marca NumberStyles.AllowTrailingSign.The sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear the end of s if style includes the NumberStyles.AllowTrailingSign flag. Se pueden usar paréntesis en s para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Secuencia de dígitos del 0 al 9.A sequence of digits from 0 through 9.
.. Un símbolo de separador decimal específico de la referencia cultural.A culture-specific decimal point symbol. El símbolo de separador decimal de la referencia cultural actual puede aparecer en s si style incluye la marca NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional_digitsfractional_digits Una o varias apariciones del dígito 0-9 Si style incluye la marca de NumberStyles.AllowExponent, o una o varias apariciones del dígito 0 si no lo está.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. Los dígitos fraccionarios solo pueden aparecer en s si style incluye la marca NumberStyles.AllowDecimalPoint.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
EE El carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. El parámetro s puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponential_digitsexponential_digits Secuencia de dígitos del 0 al 9.A sequence of digits from 0 through 9. El parámetro s puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Secuencia de dígitos hexadecimales de 0 a f, o de 0 a F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Nota

La operación de análisis omite los caracteres NUL (U + 0000) de terminación de s, independientemente del valor del argumento style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Una cadena con dígitos decimales únicamente (que corresponde al estilo NumberStyles.None) siempre se analiza correctamente.A string with decimal digits only (which corresponds to the NumberStyles.None style) always parses successfully. La mayoría de los miembros de la NumberStyles restantes controlan los elementos que pueden estar presentes, pero que no es necesario que estén presentes, en esta cadena de entrada.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in this input string. En la tabla siguiente se indica cómo los miembros de NumberStyles individuales afectan a los elementos que pueden estar presentes en s.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Valores de NumberStyles no compuestosNon-composite NumberStyles values Elementos permitidos en s además de dígitosElements permitted in s in addition to digits
NumberStyles.None Solo dígitos decimales.Decimal digits only.
NumberStyles.AllowDecimalPoint Los elementos de separador decimal (.) y fractional_digits .The decimal point (.) and fractional_digits elements. Sin embargo, si Style no incluye la marca NumberStyles.AllowExponent, fractional_digits debe constar solo de uno o más dígitos 0; de lo contrario, se produce una 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 El carácter "e" o "E", que indica la notación exponencial, junto con exponential_digits.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
NumberStyles.AllowLeadingWhite Elemento WS al principio de s.The ws element at the beginning of s.
NumberStyles.AllowTrailingWhite Elemento WS al final de s.The ws element at the end of s.
NumberStyles.AllowLeadingSign Un signo positivo antes de los dígitos.A positive sign before digits.
NumberStyles.AllowTrailingSign Un signo positivo después de dígitos.A positive sign after digits.
NumberStyles.AllowParentheses Paréntesis antes y después de los dígitos para indicar un valor negativo.Parentheses before and after digits to indicate a negative value.
NumberStyles.AllowThousands El elemento separador de grupos (,).The group separator (,) element. Aunque el separador de grupos puede aparecer en s, debe ir precedido de solo uno o más dígitos 0.Although the group separator can appear in s, it must be preceded by only one or more 0 digits.
NumberStyles.AllowCurrencySymbol El elemento Currency ($).The currency ($) element.

Si se utiliza la marca de NumberStyles.AllowHexSpecifier, s debe ser un valor hexadecimal.If the NumberStyles.AllowHexSpecifier flag is used, s must be a hexadecimal value. Los dígitos hexadecimales válidos son 0-9, a-f y A-F.Valid hexadecimal digits are 0-9, a-f, and A-F. Las demás marcas que se pueden combinar con ella son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite.The only other flags that can be combined with it are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles incluye un estilo de número compuesto, NumberStyles.HexNumber, que incluye ambas marcas de espacio en blanco).(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

Nota

Si el parámetro s es la representación de cadena de un número hexadecimal, no puede ir precedido por ninguna decoración (como 0x o &h) que lo diferencie como un número hexadecimal.If the s parameter is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. Esto hace que la operación de análisis produzca una excepción.This causes the parse operation to throw an exception.

Si s representa un número hexadecimal, el método Parse(String, NumberStyles) interpreta el bit de orden superior del byte como un bit de signo.If s represents a hexadecimal number, the Parse(String, NumberStyles) method interprets the high-order bit of the byte as a sign bit.

El parámetro provider es una implementación de IFormatProvider cuyo método GetFormat devuelve un NumberFormatInfo objeto que proporciona información específica de la referencia cultural sobre el formato de s.The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. Hay tres maneras de usar el parámetro provider para proporcionar información de formato personalizada a la operación de análisis:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Puede pasar el objeto de NumberFormatInfo real que proporciona información de formato.You can pass the actual NumberFormatInfo object that provides formatting information. (Su implementación de GetFormat simplemente se devuelve).(Its implementation of GetFormat simply returns itself.)

  • Puede pasar un objeto CultureInfo que especifica la referencia cultural cuyo formato se va a utilizar.You can pass a CultureInfo object that specifies the culture whose formatting is to be used. Su propiedad NumberFormat proporciona información de formato.Its NumberFormat property provides formatting information.

  • Puede pasar una implementación de IFormatProvider personalizada.You can pass a custom IFormatProvider implementation. Su método GetFormat debe crear una instancia de y devolver el objeto NumberFormatInfo que proporciona información de formato.Its GetFormat method must instantiate and return the NumberFormatInfo object that provides formatting information.

Si provider es null, se utiliza el objeto de NumberFormatInfo para la referencia cultural actual.If provider is null, the NumberFormatInfo object for the current culture is used.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Importante

Esta API no es conforme a CLS.

Convierte la representación de intervalo de un número con el estilo y el formato específicos de la referencia cultural que se hayan especificado en el entero de 8 bits con signo equivalente.Converts the span representation of a number that is in a specified style and culture-specific format to its 8-bit signed equivalent.

[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

Parámetros

s
ReadOnlySpan<Char>

Un intervalo que contiene los caracteres que representan el número que se va a convertir.A span containing the characters representing the number to convert. El intervalo se interpreta mediante el estilo especificado por style.The span is interpreted by using the style specified by style.

style
NumberStyles

Combinación bit a bit de los valores de enumeración que indica los elementos de estilo que pueden estar presentes en s.A bitwise combination of the enumeration values that indicates the style elements that can be present in s. Un valor que se especifica de forma habitual es Integer.A typical value to specify is Integer.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural acerca de s.An object that supplies culture-specific formatting information about s. Si provider es null, se usa la referencia cultural actual del subproceso.If provider is null, the thread current culture is used.

Devoluciones

Un valor con signo de 8 bits que es equivalente al número especificado en el parámetro s.An 8-bit signed byte value that is equivalent to the number specified in the s parameter.

Atributos

Parse(String, NumberStyles)

Importante

Esta API no es conforme a CLS.

Alternativa conforme a CLS
System.Int16.Parse(String)

Convierte la representación en forma de cadena de un número con el estilo especificado en el entero de 8 bits con signo equivalente.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

Parámetros

s
String

Cadena que contiene un número que se va a convertir.A string that contains a number to convert. La cadena se interpreta usando el estilo especificado por style.The string is interpreted using the style specified by style.

style
NumberStyles

Combinación bit a bit de los valores de enumeración que indica los elementos de estilo que pueden estar presentes en s.A bitwise combination of the enumeration values that indicates the style elements that can be present in s. Un valor que se especifica de forma habitual es Integer.A typical value to specify is Integer.

Devoluciones

Un entero con signo de 8 bits equivalente al número especificado en s.An 8-bit signed integer that is equivalent to the number specified in s.

Atributos

Excepciones

s es null.s is null.

s no está en un formato compatible con style.s is not in a format that is compliant with style.

s representa un número menor que MinValue o mayor que MaxValue.s represents a number less than MinValue or greater than MaxValue.

O bien-or- s incluye dígitos fraccionarios distintos de cero.s includes non-zero, fractional digits.

style no es un valor NumberStyles.style is not a NumberStyles value.

O bien-or- style no es una combinación de valores AllowHexSpecifier y HexNumber.style is not a combination of AllowHexSpecifier and HexNumber values.

Ejemplos

En el ejemplo siguiente se analizan las representaciones de cadena de SByte valores con el método Parse(String, NumberStyles).The following example parses string representations of SByte values with the Parse(String, NumberStyles) method. La referencia cultural actual para el ejemplo es 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.

Comentarios

El parámetro style define los elementos de estilo (como el espacio en blanco o el símbolo de signo positivo o negativo) que se permiten en el parámetro s para que la operación de análisis se realice correctamente.The style parameter defines the style elements (such as white space or the positive or negative sign symbol) that are allowed in the s parameter for the parse operation to succeed. Debe ser una combinación de marcas de bits de la enumeración NumberStyles.It must be a combination of bit flags from the NumberStyles enumeration.

Dependiendo del valor de style, el parámetro s puede incluir los siguientes elementos:Depending on the value of style, the s parameter may include the following elements:

[ws][$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws][ws][$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]

Si style incluye NumberStyles.AllowHexSpecifier, el parámetro s puede contener los elementos siguientes:If style includes NumberStyles.AllowHexSpecifier, the s parameter may contain the following elements:

[WS] hexdigits[WS][ws]hexdigits[ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space. Puede aparecer un espacio en blanco al principio de s si style incluye la marca NumberStyles.AllowLeadingWhite y puede aparecer al final de s si el estilo incluye la marca 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.
$ Un símbolo de divisa específico de la referencia cultural.A culture-specific currency symbol. La propiedad NumberFormatInfo.CurrencyPositivePattern de la referencia cultural actual define su posición en la cadena.Its position in the string is defined by the NumberFormatInfo.CurrencyPositivePattern property of the current culture. El símbolo de divisa de la referencia cultural actual puede aparecer en s si style incluye la marca NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un signo opcional.An optional sign. El signo puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingSign y puede aparecer al final de s si style incluye la marca NumberStyles.AllowTrailingSign.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. Se pueden usar paréntesis en s para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Secuencia de dígitos del 0 al 9.A sequence of digits from 0 through 9.
.. Un símbolo de separador decimal específico de la referencia cultural.A culture-specific decimal point symbol. El símbolo de separador decimal de la referencia cultural actual puede aparecer en s si style incluye la marca NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional_digitsfractional_digits Una o varias apariciones del dígito 0-9 Si style incluye la marca de NumberStyles.AllowExponent, o una o varias apariciones del dígito 0 si no lo está.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. Los dígitos fraccionarios solo pueden aparecer en s si style incluye la marca NumberStyles.AllowDecimalPoint.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
EE El carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. El parámetro s puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponential_digitsexponential_digits Una o más repeticiones del dígito 0-9.One or more occurrences of the digit 0-9. El parámetro s puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Secuencia de dígitos hexadecimales de 0 a f, o de 0 a F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Nota

La operación de análisis omite los caracteres NUL (U + 0000) de terminación de s, independientemente del valor del argumento style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Una cadena con dígitos decimales únicamente (que corresponde al estilo NumberStyles.None) siempre se analiza correctamente.A string with decimal digits only (which corresponds to the NumberStyles.None style) always parses successfully. La mayoría de los miembros de la NumberStyles restantes controlan los elementos que pueden estar presentes, pero que no es necesario que estén presentes, en la cadena de entrada.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. En la tabla siguiente se indica cómo los miembros de NumberStyles individuales afectan a los elementos que pueden estar presentes en s.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Valores NumberStyles no compuestosNon-composite NumberStyles values Elementos permitidos en s además de dígitosElements permitted in s in addition to digits
NumberStyles.None Solo dígitos decimales.Decimal digits only.
NumberStyles.AllowDecimalPoint Los elementos de separador decimal (.) y fractional_digits .The decimal point (.) and fractional_digits elements. Sin embargo, si style no incluye la marca NumberStyles.AllowExponent, fractional_digits debe constar solo de uno o más dígitos 0; de lo contrario, se produce una 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 El carácter "e" o "E", que indica la notación exponencial, junto con exponential_digits.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
NumberStyles.AllowLeadingWhite Elemento WS al principio de s.The ws element at the beginning of s.
NumberStyles.AllowTrailingWhite Elemento WS al final de s.The ws element at the end of s.
NumberStyles.AllowLeadingSign Un signo positivo antes de los dígitos.A positive sign before digits.
NumberStyles.AllowTrailingSign Un signo positivo después de dígitos.A positive sign after digits.
NumberStyles.AllowParentheses El elemento Sign en el formato de paréntesis que rodea el valor numérico.The sign element in the form of parentheses enclosing the numeric value.
NumberStyles.AllowThousands El elemento separador de grupos (,).The group separator (,) element. Aunque el separador de grupos puede aparecer en s, debe ir precedido de solo uno o más dígitos 0.Although the group separator can appear in s, it must be preceded by only one or more 0 digits.
NumberStyles.AllowCurrencySymbol El elemento Currency ($).The currency ($) element.

Si se utiliza la marca de NumberStyles.AllowHexSpecifier, s debe ser un valor hexadecimal.If the NumberStyles.AllowHexSpecifier flag is used, s must be a hexadecimal value. Los dígitos hexadecimales válidos son 0-9, a-f y A-F.Valid hexadecimal digits are 0-9, a-f, and A-F. No se admite un prefijo como "0x" y hace que se produzca un error en la operación de análisis.A prefix such as "0x" is not supported and causes the parse operation to fail. Las demás marcas que se pueden combinar en style son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite.The only other flags that can be combined included in style are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles incluye un estilo de número compuesto, NumberStyles.HexNumber, que incluye ambas marcas de espacio en blanco).(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

Nota

Si el parámetro s es la representación de cadena de un número hexadecimal, no puede ir precedido por ninguna decoración (como 0x o &h) que lo diferencie como un número hexadecimal.If the s parameter is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. Esto hace que la operación de análisis produzca una excepción.This causes the parse operation to throw an exception.

Si s representa un número hexadecimal, el método Parse(String, NumberStyles) interpreta el bit de orden superior del byte como un bit de signo.If s represents a hexadecimal number, the Parse(String, NumberStyles) method interprets the high-order bit of the byte as a sign bit.

El parámetro s se analiza utilizando la información de formato de un objeto NumberFormatInfo que se inicializa para la referencia cultural del sistema actual.The s parameter is parsed by using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. Para utilizar la información de formato de alguna otra referencia cultural, llame a la sobrecarga Parse(String, NumberStyles, IFormatProvider).To use the formatting information of some other culture, call the Parse(String, NumberStyles, IFormatProvider) overload.

Consulte también:

Parse(String)

Importante

Esta API no es conforme a CLS.

Alternativa conforme a CLS
System.Int16.Parse(String)

Convierte la representación en forma de cadena de un número en el entero de 8 bits con signo equivalente.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

Parámetros

s
String

Cadena que representa el número que se va a convertir.A string that represents a number to convert. La cadena se interpreta usando el estilo Integer.The string is interpreted using the Integer style.

Devoluciones

Un entero con signo de 8 bits que es equivalente al número incluido en el parámetro s.An 8-bit signed integer that is equivalent to the number contained in the s parameter.

Atributos

Excepciones

s es null.s is null.

s no está formado por un signo opcional seguido de una secuencia de dígitos (de cero a nueve).s does not consist of an optional sign followed by a sequence of digits (zero through nine).

s representa un número menor que MinValue o mayor que MaxValue.s represents a number less than MinValue or greater than MaxValue.

Ejemplos

En el ejemplo siguiente se muestra cómo convertir un valor de cadena en un valor de byte con signo mediante el método Parse.The following example demonstrates how to convert a string value into a signed byte value using the Parse method. A continuación, el valor de bytes con signo resultante se muestra en la consola.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.

Comentarios

El parámetro s contiene un número de la forma:The s parameter contains a number of the form:

[WS] [signo] dígitos[WS][ws][sign]digits[ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space.
signsign Un signo opcional.An optional sign.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.

El parámetro s se interpreta utilizando el estilo de NumberStyles.Integer.The s parameter is interpreted using the NumberStyles.Integer style. Además de los dígitos decimales del valor de byte, solo se permiten los espacios iniciales y finales con un signo positivo o negativo inicial.In addition to the byte value's decimal digits, only leading and trailing spaces with a leading positive or negative sign are allowed. Para definir explícitamente los elementos de estilo que pueden estar presentes en s, use el método Parse(String, NumberStyles) o 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.

El parámetro s se analiza utilizando la información de formato en un NumberFormatInfo que se inicializa para la referencia cultural del sistema actual.The s parameter is parsed by using the formatting information in a NumberFormatInfo that is initialized for the current system culture. Para obtener más información, vea NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo. Para analizar una cadena utilizando la información de formato de alguna otra referencia cultural, use el método Parse(String, NumberStyles, IFormatProvider).To parse a string by using the formatting information of some other culture, use the Parse(String, NumberStyles, IFormatProvider) method.

Consulte también:

Parse(String, IFormatProvider)

Importante

Esta API no es conforme a CLS.

Alternativa conforme a CLS
System.Int16.Parse(String)

Convierte la representación en forma de cadena de un número en el formato específico de la referencia cultural que se haya especificado en el entero de 8 bits con signo equivalente.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

Parámetros

s
String

Cadena que representa el número que se va a convertir.A string that represents a number to convert. La cadena se interpreta usando el estilo Integer.The string is interpreted using the Integer style.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural acerca de s.An object that supplies culture-specific formatting information about s. Si provider es null, se usa la referencia cultural actual del subproceso.If provider is null, the thread current culture is used.

Devoluciones

Un entero con signo de 8 bits equivalente al número especificado en s.An 8-bit signed integer that is equivalent to the number specified in s.

Atributos

Excepciones

s es null.s is null.

s no tiene el formato correcto.s is not in the correct format.

s representa un número menor que MinValue o mayor que MaxValue.s represents a number less than MinValue or greater than MaxValue.

Ejemplos

En el ejemplo siguiente se define un objeto de NumberFormatInfo personalizado que define la tilde (~) como signo negativo.The following example defines a custom NumberFormatInfo object that defines the tilde (~) as the negative sign. A continuación, analiza varias cadenas numéricas mediante este objeto de NumberFormatInfo personalizado, así como un objeto CultureInfo que representa la referencia cultural de todos los idiomas.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'.

Comentarios

El parámetro s contiene un número de la forma:The s parameter contains a number of the form:

[WS] [signo] dígitos[WS][ws][sign]digits[ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space.
signsign Un signo opcional.An optional sign.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.

El parámetro s se interpreta utilizando el estilo de Integer.The s parameter is interpreted using the Integer style. Además de los dígitos decimales del valor de byte, solo se permiten los espacios iniciales y finales con un signo inicial.In addition to the byte value's decimal digits, only leading and trailing spaces with a leading sign are allowed. Para definir explícitamente los elementos de estilo con la información de formato específica de la referencia cultural que puede estar presente en s, use el método 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.

El parámetro provider es una implementación de IFormatProvider cuyo método GetFormat devuelve un NumberFormatInfo objeto que proporciona información específica de la referencia cultural sobre el formato de s.The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. Hay tres maneras de usar el parámetro provider para proporcionar información de formato personalizada a la operación de análisis:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Puede pasar el objeto de NumberFormatInfo real que proporciona información de formato.You can pass the actual NumberFormatInfo object that provides formatting information. (Su implementación de GetFormat simplemente se devuelve).(Its implementation of GetFormat simply returns itself.)

  • Puede pasar un objeto CultureInfo que especifica la referencia cultural cuyo formato se va a utilizar.You can pass a CultureInfo object that specifies the culture whose formatting is to be used. Su propiedad NumberFormat proporciona información de formato.Its NumberFormat property provides formatting information.

  • Puede pasar una implementación de IFormatProvider personalizada.You can pass a custom IFormatProvider implementation. Su método GetFormat debe crear una instancia de y devolver el objeto NumberFormatInfo que proporciona información de formato.Its GetFormat method must instantiate and return the NumberFormatInfo object that provides formatting information.

Si provider es null, se utiliza el objeto de NumberFormatInfo para la referencia cultural actual.If provider is null, the NumberFormatInfo object for the current culture is used.

Consulte también:

Se aplica a