Int32.TryParse Método

Definición

Convierte la representación en forma de cadena de un número en el entero de 32 bits con signo equivalente.Converts the string representation of a number to its 32-bit signed integer equivalent. Un valor devuelto indica si la operación tuvo éxito.A return value indicates whether the operation succeeded.

Sobrecargas

TryParse(String, Int32)

Convierte la representación en forma de cadena de un número en el entero de 32 bits con signo equivalente.Converts the string representation of a number to its 32-bit signed integer equivalent. Un valor devuelto indica si la conversión se realizó correctamente.A return value indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, Int32)

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 con signo de 32 bits equivalente.Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. Un valor devuelto indica si la conversión se realizó correctamente.A return value indicates whether the conversion succeeded.

TryParse(String, NumberStyles, IFormatProvider, Int32)

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 32 bits con signo equivalente.Converts the string representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. Un valor devuelto indica si la conversión se realizó correctamente.A return value indicates whether the conversion succeeded.

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

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 con signo de 32 bits equivalente.Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. Un valor devuelto indica si la conversión se realizó correctamente.A return value indicates whether the conversion succeeded.

TryParse(String, Int32)

Convierte la representación en forma de cadena de un número en el entero de 32 bits con signo equivalente.Converts the string representation of a number to its 32-bit signed integer equivalent. Un valor devuelto indica si la conversión se realizó correctamente.A return value indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] int % result);
public static bool TryParse (string s, out int result);
public static bool TryParse (string? s, out int? result);
static member TryParse : string * int -> bool
Public Shared Function TryParse (s As String, ByRef result As Integer) As Boolean

Parámetros

s
String

Cadena que contiene un número que se va a convertir.A string containing a number to convert.

result
Int32

El resultado que devuelve este método contiene el valor entero con signo de 32 bits equivalente al número contenido en s si la conversión se realizó correctamente, o bien, cero si no se realizó correctamente.When this method returns, contains the 32-bit signed integer value equivalent of the number contained in s, if the conversion succeeded, or zero if the conversion failed. La conversión no se realiza correctamente si el parámetro s es null o Empty, no tiene el formato correcto o representa un número menor que MinValue o mayor que MaxValue.The conversion fails if the s parameter is null or Empty, is not of the correct format, or represents a number less than MinValue or greater than MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Devoluciones

Boolean

true si s se convirtió correctamente; en caso contrario, false.true if s was converted successfully; otherwise, false.

Ejemplos

En el ejemplo siguiente se llama al Int32.TryParse(String, Int32) método con varios valores de cadena diferentes.The following example calls the Int32.TryParse(String, Int32) method with a number of different string values.

using namespace System;


   void TryToParse(String^ value)
   {
      Int32 number;
      bool result = Int32::TryParse(value, number);
      if (result) {
         Console::WriteLine("Converted '{0}' to {1}.", value, number);
      }
      else {
         if (value == nullptr) value = "";
         Console::WriteLine("Attempted conversion of '{0}' failed.", value);
      }
   }


void main()
{
      TryToParse(nullptr);
      TryToParse("160519");
      TryToParse("9432.0");
      TryToParse("16,667");
      TryToParse("   -322   ");
      TryToParse("+4302");
      TryToParse("(100);");
      TryToParse("01FA");
}
// The example displays the following output:
//      Attempted conversion of '' failed.
//      Converted '160519' to 160519.
//      Attempted conversion of '9432.0' failed.
//      Attempted conversion of '16,667' failed.
//      Converted '   -322   ' to -322.
//      Converted '+4302' to 4302.
//      Attempted conversion of '(100);' failed.
//      Attempted conversion of '01FA' failed.
using System;

public class Example
{
   public static void Main()
   {
      String[] values = { null, "160519", "9432.0", "16,667",
                          "   -322   ", "+4302", "(100);", "01FA" };
      foreach (var value in values)
      {
         int number;

         bool success = Int32.TryParse(value, out number);
         if (success)
         {
            Console.WriteLine("Converted '{0}' to {1}.", value, number);
         }
         else
         {
            Console.WriteLine("Attempted conversion of '{0}' failed.",
                               value ?? "<null>");
         }
      }
   }
}
// The example displays the following output:
//       Attempted conversion of '<null>' failed.
//       Converted '160519' to 160519.
//       Attempted conversion of '9432.0' failed.
//       Attempted conversion of '16,667' failed.
//       Converted '   -322   ' to -322.
//       Converted '+4302' to 4302.
//       Attempted conversion of '(100);' failed.
//       Attempted conversion of '01FA' failed.
Module Example
   Public Sub Main()
      Dim values() As String = { Nothing, "160519", "9432.0", "16,667",
                                 "   -322   ", "+4302", "(100);", 
                                 "01FA" }

      For Each value In values
         Dim number As Integer
    
         Dim success As Boolean = Int32.TryParse(value, number)
         If success Then
            Console.WriteLine("Converted '{0}' to {1}.", value, number)
         Else
            Console.WriteLine("Attempted conversion of '{0}' failed.", 
                              If(value ,"<null>"))
         End If     
      Next
   End Sub
End Module
' The example displays the following output to the console:
'       Attempted conversion of '<null>' failed.
'       Converted '160519' to 160519.
'       Attempted conversion of '9432.0' failed.
'       Attempted conversion of '16,667' failed.
'       Converted '   -322   ' to -322.
'       Converted '+4302' to 4302.
'       Attempted conversion of '(100)' failed.
'       Attempted conversion of '01FA' failed.

Algunas de las cadenas que el TryParse(String, Int32) método no puede convertir en este ejemplo son:Some of the strings that the TryParse(String, Int32) method is unable to convert in this example are:

  • "9432.0"."9432.0". La conversión no se realiza correctamente porque la cadena no puede contener un separador decimal; solo debe contener dígitos enteros.The conversion fails because the string cannot contain a decimal separator; it must contain integral digits only.

  • "16,667"."16,667". La conversión no se realiza correctamente porque la cadena no puede contener separadores de grupos; solo debe contener dígitos enteros.The conversion fails because the string cannot contain group separators; it must contain integral digits only.

  • "(100)"."(100)". La conversión no se realiza correctamente porque la cadena no puede contener un signo negativo que no sea el definido por las propiedades y de la referencia cultural actual NumberFormatInfo.NegativeSign NumberFormatInfo.NumberNegativePattern .The conversion fails because the string cannot contain a negative sign other than the one defined by the current culture's NumberFormatInfo.NegativeSign and NumberFormatInfo.NumberNegativePattern properties.

  • "01FA"."01FA". La conversión no se realiza correctamente porque la cadena no puede contener dígitos hexadecimales; solo debe contener dígitos decimales.The conversion fails because the string cannot contain hexadecimal digits; it must contain decimal digits only.

Comentarios

El TryParse método es como el Parse método, con la excepción de que el TryParse método no produce una excepción si se produce un error en la conversión.The TryParse method is like the Parse method, except the TryParse method does not throw an exception if the conversion fails. Elimina la necesidad de usar el control de excepciones para probar un FormatException en el evento que s no es válido y no se puede analizar correctamente.It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

El s parámetro 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 entre corchetes ([y]) son opcionales.Items 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.
dígitosdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.

El s parámetro se interpreta utilizando el NumberStyles.Integer estilo.The s parameter is interpreted using the NumberStyles.Integer style. Además de los dígitos decimales, solo se permiten los espacios iniciales y finales junto con un signo inicial.In addition to the decimal digits, only leading and trailing spaces together with a leading sign are allowed. Para definir explícitamente los elementos de estilo junto con la información de formato específica de la referencia cultural que puede estar presente en s , use el Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) método.To explicitly define the style elements together with the culture-specific formatting information that can be present in s, use the Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) method.

El s parámetro se analiza utilizando la información de formato de un NumberFormatInfo objeto inicializado para la referencia cultural del sistema actual.The s parameter is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. Para obtener más información, vea CurrentInfo.For more information, see CurrentInfo.

Esta sobrecarga del TryParse método interpreta todos los dígitos del s parámetro como dígitos decimales.This overload of the TryParse method interprets all digits in the s parameter as decimal digits. Para analizar la representación de cadena de un número hexadecimal, llame a la Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) sobrecarga.To parse the string representation of a hexadecimal number, call the Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) overload.

Consulte también

Se aplica a

TryParse(ReadOnlySpan<Char>, Int32)

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 con signo de 32 bits equivalente.Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. Un valor devuelto indica si la conversión se realizó correctamente.A return value indicates whether the conversion succeeded.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] int % result);
public static bool TryParse (ReadOnlySpan<char> s, out int result);
static member TryParse : ReadOnlySpan<char> * int -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Integer) As Boolean

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 that represent the number to convert.

result
Int32

El resultado que devuelve este método contiene el valor entero con signo de 32 bits equivalente al número contenido en s si la conversión se realizó correctamente, o bien, cero si no se realizó correctamente.When this method returns, contains the 32-bit signed integer value equivalent of the number contained in s, if the conversion succeeded, or zero if the conversion failed. La conversión no se realiza correctamente si el parámetro es snull o Empty, no tiene un formato compatible con style o representa un número menor que MinValue o mayor que MaxValue.The conversion fails if the s parameter is null or Empty, is not in a format compliant with style, or represents a number less than MinValue or greater than MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Devoluciones

Boolean

true si s se convirtió correctamente; en caso contrario, false.true if s was converted successfully; otherwise, false.

Se aplica a

TryParse(String, NumberStyles, IFormatProvider, Int32)

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 32 bits con signo equivalente.Converts the string representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. Un valor devuelto indica si la conversión se realizó correctamente.A return value indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] int % result);
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out int result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out int? result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * int -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Integer) As Boolean

Parámetros

s
String

Cadena que contiene un número que se va a convertir.A string containing 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 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.

result
Int32

El resultado que devuelve este método contiene el valor entero con signo de 32 bits equivalente al número contenido en s si la conversión se realizó correctamente, o bien, cero si no se realizó correctamente.When this method returns, contains the 32-bit signed integer value equivalent of the number contained in s, if the conversion succeeded, or zero if the conversion failed. La conversión no se realiza correctamente si el parámetro es snull o Empty, no tiene un formato compatible con style o representa un número menor que MinValue o mayor que MaxValue.The conversion fails if the s parameter is null or Empty, is not in a format compliant with style, or represents a number less than MinValue or greater than MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Devoluciones

Boolean

true si s se convirtió correctamente; en caso contrario, false.true if s was converted successfully; otherwise, false.

Excepciones

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 llama al Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) método con un número de cadenas y NumberStyles valores distintos.The following example calls the Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) method with a number of different string and NumberStyles values.

using namespace System;
using namespace System::Globalization;

void CallTryParse(String^ stringToConvert, NumberStyles styles)
{
      Int32 number;
      CultureInfo^ provider;

      // If currency symbol is allowed, use en-US culture. 
      if (((Int32) (styles & NumberStyles::AllowCurrencySymbol)) > 0)
         provider = gcnew CultureInfo("en-US");
      else
         provider = CultureInfo::InvariantCulture;

      bool result = Int32::TryParse(stringToConvert, styles, 
                                   provider, number);
      if (result)
         Console::WriteLine("Converted '{0}' to {1}.", stringToConvert, number);
      else
         Console::WriteLine("Attempted conversion of '{0}' failed.", 
                           Convert::ToString(stringToConvert));
}

void main()
{
      String^ numericString;
      NumberStyles styles;

      numericString = "106779";
      styles = NumberStyles::Integer;
      CallTryParse(numericString, styles);

      numericString = "-30677";
      styles = NumberStyles::None;
      CallTryParse(numericString, styles);

      styles = NumberStyles::AllowLeadingSign;
      CallTryParse(numericString, styles);

      numericString = "301677-";
      CallTryParse(numericString, styles);

      styles = styles | NumberStyles::AllowTrailingSign;
      CallTryParse(numericString, styles);

      numericString = "$10634";
      styles = NumberStyles::Integer;
      CallTryParse(numericString, styles);

      styles = NumberStyles::Integer | NumberStyles::AllowCurrencySymbol;
      CallTryParse(numericString, styles);

      numericString = "10345.00";
      styles = NumberStyles::Integer | NumberStyles::AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "10345.72";
      styles = NumberStyles::Integer | NumberStyles::AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "22,593"; 
      styles = NumberStyles::Integer | NumberStyles::AllowThousands;
      CallTryParse(numericString, styles);

      numericString = "12E-01";
      styles = NumberStyles::Integer | NumberStyles::AllowExponent;
      CallTryParse(numericString, styles); 

      numericString = "12E03";
      CallTryParse(numericString, styles); 

      numericString = "80c1";
      CallTryParse(numericString, NumberStyles::HexNumber);

      numericString = "0x80C1";
      CallTryParse(numericString, NumberStyles::HexNumber);      
      Console::ReadLine();
}
// The example displays the following output:
//      Converted '106779' to 106779.
//      Attempted conversion of '-30677' failed.
//      Converted '-30677' to -30677.
//      Attempted conversion of '301677-' failed.
//      Converted '301677-' to -301677.
//      Attempted conversion of '$10634' failed.
//      Converted '$10634' to 10634.
//      Converted '10345.00' to 10345.
//      Attempted conversion of '10345.72' failed.
//      Converted '22,593' to 22593.
//      Attempted conversion of '12E-01' failed.
//      Converted '12E03' to 12000.
//      Converted '80c1' to 32961.
//      Attempted conversion of '0x80C1' failed.
using System;
using System.Globalization;

public class StringParsing
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;

      numericString = "106779";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);

      numericString = "-30677";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);

      styles = NumberStyles.AllowLeadingSign;
      CallTryParse(numericString, styles);

      numericString = "301677-";
      CallTryParse(numericString, styles);

      styles = styles | NumberStyles.AllowTrailingSign;
      CallTryParse(numericString, styles);

      numericString = "$10634";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);

      styles = NumberStyles.Integer | NumberStyles.AllowCurrencySymbol;
      CallTryParse(numericString, styles);

      numericString = "10345.00";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "10345.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "22,593";
      styles = NumberStyles.Integer | NumberStyles.AllowThousands;
      CallTryParse(numericString, styles);

      numericString = "12E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles);

      numericString = "12E03";
      CallTryParse(numericString, styles);

      numericString = "80c1";
      CallTryParse(numericString, NumberStyles.HexNumber);

      numericString = "0x80C1";
      CallTryParse(numericString, NumberStyles.HexNumber);
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      CultureInfo provider;

      // If currency symbol is allowed, use en-US culture.
      if ((styles & NumberStyles.AllowCurrencySymbol) > 0)
         provider = new CultureInfo("en-US");
      else
         provider = CultureInfo.InvariantCulture;

      bool success = Int32.TryParse(stringToConvert, styles,
                                   provider, out int number);
      if (success)
         Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number);
      else
         Console.WriteLine("Attempted conversion of '{0}' failed.",
                           Convert.ToString(stringToConvert));
   }
}
// The example displays the following output to the console:
//       Converted '106779' to 106779.
//       Attempted conversion of '-30677' failed.
//       Converted '-30677' to -30677.
//       Attempted conversion of '301677-' failed.
//       Converted '301677-' to -301677.
//       Attempted conversion of '$10634' failed.
//       Converted '$10634' to 10634.
//       Converted '10345.00' to 10345.
//       Attempted conversion of '10345.72' failed.
//       Converted '22,593' to 22593.
//       Attempted conversion of '12E-01' failed.
//       Converted '12E03' to 12000.
//       Converted '80c1' to 32961.
//       Attempted conversion of '0x80C1' failed.
Imports System.Globalization

Module StringParsing
   Public Sub Main()
      Dim numericString As String
      Dim styles As NumberStyles
      
      numericString = "106779"
      styles = NumberStyles.Integer
      CallTryParse(numericString, styles)
      
      numericString = "-30677"
      styles = NumberStyles.None
      CallTryParse(numericString, styles)
      
      styles = NumberStyles.AllowLeadingSign
      CallTryParse(numericString, styles)
      
      numericString = "301677-"
      CallTryParse(numericString, styles)
      
      styles = styles Or NumberStyles.AllowTrailingSign
      CallTryParse(numericString, styles)
      
      numericString = "$10634"
      styles = NumberStyles.Integer
      CallTryParse(numericString, styles)
      
      styles = NumberStyles.Integer Or NumberStyles.AllowCurrencySymbol
      CallTryParse(numericString, styles)

      numericString = "10345.00"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)
      
      numericString = "10345.72"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)

      numericString = "22,593" 
      styles = NumberStyles.Integer Or NumberStyles.AllowThousands
      CallTryParse(numericString, styles)
      
      numericString = "12E-01"
      styles = NumberStyles.Integer Or NumberStyles.AllowExponent
      CallTryParse(numericString, styles) 
          
      numericString = "12E03"
      CallTryParse(numericString, styles) 
      
      numericString = "80c1"
      CallTryParse(numericString, NumberStyles.HexNumber)
      
      numericString = "0x80C1"
      CallTryParse(numericString, NumberStyles.HexNumber)
   End Sub
   
   Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
      Dim number As Integer
      Dim provider As CultureInfo
      
      ' If currency symbol is allowed, use en-US culture.
      If CBool(styles And NumberStyles.AllowCurrencySymbol) Then
         provider = CultureInfo.CurrentCulture
      Else
         provider = New CultureInfo("en-US")
      End If
      
      Dim result As Boolean = Int32.TryParse(stringToConvert, styles, _
                                             provider, number)
      If result Then
         Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number)
      Else
         Console.WriteLine("Attempted conversion of '{0}' failed.", _
                           Convert.ToString(stringToConvert))
      End If                                                                           
   End Sub
End Module
' The example displays the following output to the console:
'       Converted '106779' to 106779.
'       Attempted conversion of '-30677' failed.
'       Converted '-30677' to -30677.
'       Attempted conversion of '301677-' failed.
'       Converted '301677-' to -301677.
'       Attempted conversion of '$10634' failed.
'       Converted '$10634' to 10634.
'       Converted '10345.00' to 10345.
'       Attempted conversion of '10345.72' failed.
'       Converted '22,593' to 22593.
'       Attempted conversion of '12E-01' failed.
'       Converted '12E03' to 12000.
'       Converted '80c1' to 32961.
'       Attempted conversion of '0x80C1' failed.

Comentarios

El TryParse método es como el Parse método, con la excepción de que el TryParse método no produce una excepción si se produce un error en la conversión.The TryParse method is like the Parse method, except the TryParse method does not throw an exception if the conversion fails. Elimina la necesidad de usar el control de excepciones para probar un FormatException en el evento que s no es válido y no se puede analizar correctamente.It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be parsed successfully.

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

WS [$] sesión [digits,] digits [.fractional_digits] [e [Sign] digits] [ws][ws][$][sign][digits,]digits[.fractional_digits][e[sign]digits][ws]

O bien, si el style parámetro incluye AllowHexSpecifier :Or, if the style parameter includes AllowHexSpecifier:

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

Los elementos entre corchetes ([y]) son opcionales.Items 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 NumberStyles.AllowLeadingWhite marca o al final de s si style incluye la NumberStyles.AllowTrailingWhite marca.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, or 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 CurrencyPositivePattern propiedad del NumberFormatInfo objeto devuelto por el GetFormat método del parámetro define su posición en la cadena provider .Its position in the string is defined by the CurrencyPositivePattern property of the NumberFormatInfo object returned by the GetFormat method of the provider parameter. El símbolo de moneda puede aparecer en s si style incluye la NumberStyles.AllowCurrencySymbol marca.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un signo opcional.An optional sign. Puede aparecer un símbolo de signo en s si style incluye NumberStyles.AllowLeadingSign las NumberStyles.AllowTrailingSign marcas o.A sign symbol can appear in s if style includes the NumberStyles.AllowLeadingSign or NumberStyles.AllowTrailingSign flags.
dígitosdigits Secuencia de dígitos del 0 al 9.A sequence of digits from 0 through 9.
,, Separador de miles específico de la referencia cultural.A culture-specific thousands separator. El separador de miles de la referencia cultural especificada por provider puede aparecer en s si style incluye la NumberStyles.AllowThousands marca.The thousands separator of the culture specified by provider can appear in s if style includes the NumberStyles.AllowThousands flag.
.. 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 especificada por provider puede aparecer en s si style incluye la NumberStyles.AllowDecimalPoint marca.The decimal point symbol of the culture specified by provider can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional_digitsfractional_digits Una o más apariciones del dígito 0.One or more occurrences of the digit 0. Los dígitos fraccionarios solo pueden aparecer en s si style incluye la NumberStyles.AllowDecimalPoint marca.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.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. El s parámetro puede representar un número en notación exponencial si style incluye la NumberStyles.AllowExponent marca.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

Los caracteres NUL de terminación (U + 0000) de s se omiten en la operación de análisis, independientemente del valor del style argumento.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 solamente (que corresponde a la NumberStyles.None marca) siempre se analiza correctamente.A string with decimal digits only (which corresponds to the NumberStyles.None flag) always parses successfully. La mayoría de los NumberStyles miembros restantes controlan los elementos que pueden estar presentes en esta cadena de entrada, pero que no son necesarios.Most of the remaining NumberStyles members control elements that may be but are not required to be present in this input string. En la tabla siguiente se indica cómo NumberStyles afectan los miembros individuales 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, fractional_digits debe constar solo de uno o más dígitos 0 o el método devuelve false .However, fractional_digits must consist of only one or more 0 digits or the method returns false.
NumberStyles.AllowExponent El s parámetro también puede usar la notación exponencial.The s parameter can also use exponential notation. Si s representa un número en notación exponencial, debe representar un entero en el intervalo del Int32 tipo de datos sin un componente de fracción distinto de cero.If s represents a number in exponential notation, it must represent an integer within the range of the Int32 data type without a non-zero, fractional component.
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 puede aparecer antes que los dígitos.A sign can appear before digits.
NumberStyles.AllowTrailingSign Puede aparecer un signo después de los dígitos.A sign can appear 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 miles (,).The thousands separator (,) element.
NumberStyles.AllowCurrencySymbol $ Elemento.The $ element.
NumberStyles.Currency Todos los elementos.All elements. El s parámetro no puede representar un número hexadecimal o un número en notación exponencial.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
NumberStyles.Float El elemento WS al principio o al final de s , Sign al principio de s y el símbolo de separador decimal (.).The ws element at the beginning or end of s, sign at the beginning of s, and the decimal point (.) symbol. El s parámetro también puede usar la notación exponencial.The s parameter can also use exponential notation.
NumberStyles.Number Los elementos WS, Sign, separador de miles (,) y punto decimal (.).The ws, sign, thousands separator (,), and decimal point (.) elements.
NumberStyles.Any Todos los estilos, excepto s no pueden representar un número hexadecimal.All styles, except s cannot represent a hexadecimal number.

Si NumberStyles.AllowHexSpecifier se usa la marca, s debe ser un valor hexadecimal sin un prefijo.If the NumberStyles.AllowHexSpecifier flag is used, s must be a hexadecimal value without a prefix. Por ejemplo, "C9AF3" se analiza correctamente, pero "0xC9AF3" no lo hace.For example, "C9AF3" parses successfully, but "0xC9AF3" does not. Las demás marcas que pueden estar presentes en style son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite .The only other flags that can be present in style are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (La NumberStyles enumeración tiene un estilo compuesto, NumberStyles.HexNumber , que incluye ambas marcas de espacio en blanco).(The NumberStyles enumeration has a composite style, NumberStyles.HexNumber, that includes both white space flags.)

El provider parámetro es una IFormatProvider implementación de, como un CultureInfo objeto o un objeto NumberFormatInfo , cuyo GetFormat método devuelve un NumberFormatInfo objeto.The provider parameter is an IFormatProvider implementation, such as a CultureInfo object or a NumberFormatInfo object, whose GetFormat method returns a NumberFormatInfo object. El NumberFormatInfo objeto proporciona información específica de la referencia cultural acerca del formato de s .The NumberFormatInfo object provides culture-specific information about the format of s. Si provider es null , NumberFormatInfo se usa el objeto de la referencia cultural actual.If provider is null, the NumberFormatInfo object for the current culture is used.

Consulte también

Se aplica a

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

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 con signo de 32 bits equivalente.Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. Un valor devuelto indica si la conversión se realizó correctamente.A return value indicates whether the conversion succeeded.

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] int % result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out int result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out int result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * int -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Integer) As Boolean

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 that represent the number to convert. El intervalo se interpreta mediante el estilo especificado por styleThe span 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 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.

result
Int32

El resultado que devuelve este método contiene el valor entero con signo de 32 bits equivalente al número contenido en s si la conversión se realizó correctamente, o bien, cero si no se realizó correctamente.When this method returns, contains the 32-bit signed integer value equivalent of the number contained in s, if the conversion succeeded, or zero if the conversion failed. La conversión no se realiza correctamente si el parámetro es snull o Empty, no tiene un formato compatible con style o representa un número menor que MinValue o mayor que MaxValue.The conversion fails if the s parameter is null or Empty, is not in a format compliant with style, or represents a number less than MinValue or greater than MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Devoluciones

Boolean

true si s se convirtió correctamente; en caso contrario, false.true if s was converted successfully; otherwise, false.

Se aplica a