SByte.TryParse Método

Definición

Convierte la representación de cadena de un número en su entero de 8 bits con signo equivalente. Un código de retorno indica si la conversión se realizó correctamente o no.

Sobrecargas

TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte)

Intenta analizar un intervalo de caracteres UTF-8 en un valor.

TryParse(ReadOnlySpan<Char>, SByte)

Intenta convertir la representación de intervalo de un número en su SByte equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

TryParse(String, SByte)

Intenta convertir la representación de cadena de un número en su SByte equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte)

Intenta analizar un intervalo de caracteres en un valor.

TryParse(String, IFormatProvider, SByte)

Intenta analizar una cadena en un valor.

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

Intenta analizar un intervalo de caracteres UTF-8 en un valor.

TryParse(ReadOnlySpan<Byte>, SByte)

Intenta convertir un intervalo de caracteres UTF-8 que contiene la representación de cadena de un número en su entero de 8 bits con signo equivalente.

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

Intenta convertir la representación de intervalo de un número en un estilo especificado y un formato específico de la referencia cultural a su SByte equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

TryParse(String, NumberStyles, IFormatProvider, SByte)

Intenta convertir la representación de cadena de un número en un estilo especificado y un formato específico de la referencia cultural a su SByte equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte)

Source:
SByte.cs
Source:
SByte.cs

Intenta analizar un intervalo de caracteres UTF-8 en un valor.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = IUtf8SpanParsable<System::SByte>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As SByte) As Boolean

Parámetros

utf8Text
ReadOnlySpan<Byte>

Intervalo de caracteres UTF-8 que se van a analizar.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text.

result
SByte

Al devolver, contiene el resultado de analizar correctamente utf8Text o un valor indefinido en caso de error.

Devoluciones

true si utf8Text se ha analizado correctamente; de lo contrario, false.

Se aplica a

TryParse(ReadOnlySpan<Char>, SByte)

Source:
SByte.cs
Source:
SByte.cs
Source:
SByte.cs

Importante

Esta API no es conforme a CLS.

Intenta convertir la representación de intervalo de un número en su SByte equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

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

Parámetros

s
ReadOnlySpan<Char>

Intervalo que contiene los caracteres que representan el número que se va a convertir.

result
SByte

Cuando este método devuelve, contiene el valor entero con signo de 8 bits equivalente al número contenido en s si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Se produce un error en la conversión si el parámetro s es null o Empty, no tiene el formato correcto o representa un número menor que SByte.MinValue o mayor que SByte.MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.

Devoluciones

true si s se convirtió correctamente; de lo contrario, false.

Atributos

Se aplica a

TryParse(String, SByte)

Source:
SByte.cs
Source:
SByte.cs
Source:
SByte.cs

Importante

Esta API no es conforme a CLS.

Intenta convertir la representación de cadena de un número en su SByte equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

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

Parámetros

s
String

Cadena que contiene un número que se va a convertir.

result
SByte

Cuando este método devuelve, contiene el valor entero con signo de 8 bits equivalente al número contenido en s si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Se produce un error en la conversión si el parámetro s es null o Empty, no tiene el formato correcto o representa un número menor que SByte.MinValue o mayor que SByte.MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.

Devoluciones

true si s se convirtió correctamente; de lo contrario, false.

Atributos

Ejemplos

En el ejemplo siguiente se intentan convertir las cadenas de una matriz en SByte valores llamando al método TryParse(String, SByte).

string[] numericStrings = {"-3.6", "12.8", "+16.7", "    3   ", "(17)", 
                           "-17", "+12", "18-", "987", "1,024", "  127 "};
sbyte number;
foreach (string numericString in numericStrings)
{
   if (sbyte.TryParse(numericString, out number)) 
      Console.WriteLine("Converted '{0}' to {1}.", numericString, number);
   else
      Console.WriteLine("Cannot convert '{0}' to an SByte.", numericString);
}
// The example displays the following output to the console:
//       Cannot convert '-3.6' to an SByte.
//       Cannot convert '12.8' to an SByte.
//       Cannot convert '+16.7' to an SByte.
//       Converted '    3   ' to 3.
//       Cannot convert '(17)' to an SByte.
//       Converted '-17' to -17.
//       Converted '+12' to 12.
//       Cannot convert '18-' to an SByte.
//       Cannot convert '987' to an SByte.
//       Cannot convert '1,024' to an SByte.
//       Converted '  127 ' to 127.
open System

let numericStrings = 
    [| "-3.6"; "12.8"; "+16.7"; "    3   "; "(17)" 
       "-17"; "+12"; "18-"; "987"; "1,024"; "  127 " |]

for numericString in numericStrings do
    match SByte.TryParse numericString with 
    | true, number ->
        printfn $"Converted '{numericString}' to {number}."
    | _ ->
        printfn $"Cannot convert '{numericString}' to an SByte."
// The example displays the following output to the console:
//       Cannot convert '-3.6' to an SByte.
//       Cannot convert '12.8' to an SByte.
//       Cannot convert '+16.7' to an SByte.
//       Converted '    3   ' to 3.
//       Cannot convert '(17)' to an SByte.
//       Converted '-17' to -17.
//       Converted '+12' to 12.
//       Cannot convert '18-' to an SByte.
//       Cannot convert '987' to an SByte.
//       Cannot convert '1,024' to an SByte.
//       Converted '  127 ' to 127.
Dim numericStrings() As String = {"-3.6", "12.8", "+16.7", "    3   ", _
                                  "(17)", "-17", "+12", "18-", "987", _
                                  "1,024", "  127 "}
Dim number As SByte
For Each numericString As String In numericStrings
   If SByte.TryParse(numericString, number) Then
      Console.WriteLine("Converted '{0}' to {1}.", numericString, number)
   Else
      Console.WriteLine("Cannot convert '{0}' to an SByte.", numericString)
   End If      
Next
' The example displays the following output to the console:
'       Cannot convert '-3.6' to an SByte.
'       Cannot convert '12.8' to an SByte.
'       Cannot convert '+16.7' to an SByte.
'       Converted '    3   ' to 3.
'       Cannot convert '(17)' to an SByte.
'       Converted '-17' to -17.
'       Converted '+12' to 12.
'       Cannot convert '18-' to an SByte.
'       Cannot convert '987' to an SByte.
'       Cannot convert '1,024' to an SByte.
'       Converted '  127 ' to 127.

Comentarios

El método SByte.TryParse(String, SByte) es similar al método SByte.Parse(String), salvo que no produce una excepción si se produce un error en la conversión. Este método elimina la necesidad de usar el control de excepciones para probar una FormatException si value no es válido y no se puede analizar correctamente.

El parámetro s debe ser la representación de cadena de un número decimal con el formato siguiente:

[ws] [signo]dígitos[ws]

Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.

Elemento Descripción
ws Espacio en blanco opcional.
de signo Un signo opcional. Los caracteres de signo válidos se determinan mediante las propiedades NumberFormatInfo.NegativeSign y NumberFormatInfo.PositiveSign de la referencia cultural actual.
de dígitos de Secuencia de dígitos decimales comprendidos entre 0 y 9.

Nota

La cadena especificada por el parámetro value no puede contener ningún separador de grupo ni separador decimal, y no puede tener una parte decimal.

El parámetro s se interpreta mediante el estilo NumberStyles.Integer. Además de los dígitos decimales, solo se permiten espacios iniciales y finales con un signo inicial. 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 value, llame al método TryParse(String, NumberStyles, IFormatProvider, SByte).

El parámetro s se analiza mediante la información de formato de un objeto NumberFormatInfo para la referencia cultural actual. Para obtener más información, consulte NumberFormatInfo.CurrentInfo.

Esta sobrecarga interpreta todos los dígitos del parámetro value como dígitos decimales. Para analizar la representación de cadena de un número hexadecimal, llame a la sobrecarga TryParse(String, NumberStyles, IFormatProvider, SByte) en su lugar.

Consulte también

Se aplica a

TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte)

Source:
SByte.cs
Source:
SByte.cs
Source:
SByte.cs

Intenta analizar un intervalo de caracteres en un valor.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = ISpanParsable<System::SByte>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As SByte) As Boolean

Parámetros

s
ReadOnlySpan<Char>

Intervalo de caracteres que se va a analizar.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre s.

result
SByte

Cuando este método devuelve , contiene el resultado de analizar correctamente so un valor indefinido en caso de error.

Devoluciones

true si s se ha analizado correctamente; de lo contrario, false.

Se aplica a

TryParse(String, IFormatProvider, SByte)

Source:
SByte.cs
Source:
SByte.cs
Source:
SByte.cs

Intenta analizar una cadena en un valor.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = IParsable<System::SByte>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out sbyte result);
static member TryParse : string * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As SByte) As Boolean

Parámetros

s
String

Cadena que se va a analizar.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre s.

result
SByte

Cuando este método devuelve, contiene el resultado de analizar correctamente s o un valor indefinido en caso de error.

Devoluciones

true si s se ha analizado correctamente; de lo contrario, false.

Se aplica a

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

Source:
SByte.cs
Source:
SByte.cs

Intenta analizar un intervalo de caracteres UTF-8 en un valor.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = System::Numerics::INumberBase<System::SByte>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As SByte) As Boolean

Parámetros

utf8Text
ReadOnlySpan<Byte>

Intervalo de caracteres UTF-8 que se van a analizar.

style
NumberStyles

Combinación bit a bit de estilos de número que pueden estar presentes en utf8Text.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text.

result
SByte

Al devolver, contiene el resultado de analizar correctamente utf8Text o un valor indefinido en caso de error.

Devoluciones

true si utf8Text se ha analizado correctamente; de lo contrario, false.

Se aplica a

TryParse(ReadOnlySpan<Byte>, SByte)

Source:
SByte.cs
Source:
SByte.cs

Intenta convertir un intervalo de caracteres UTF-8 que contiene la representación de cadena de un número en su entero de 8 bits con signo equivalente.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::SByte % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As SByte) As Boolean

Parámetros

utf8Text
ReadOnlySpan<Byte>

Intervalo que contiene los caracteres UTF-8 que representan el número que se va a convertir.

result
SByte

Cuando este método devuelve, contiene el valor entero con signo de 8 bits equivalente al número contenido en utf8Text si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Este parámetro se pasa sin inicializar; Cualquier valor proporcionado originalmente en el resultado se sobrescribirá.

Devoluciones

true si utf8Text se convirtió correctamente; de lo contrario, false.

Se aplica a

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

Source:
SByte.cs
Source:
SByte.cs
Source:
SByte.cs

Importante

Esta API no es conforme a CLS.

Intenta convertir la representación de intervalo de un número en un estilo especificado y un formato específico de la referencia cultural a su SByte equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

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

Parámetros

s
ReadOnlySpan<Char>

Intervalo que contiene los caracteres que representan el número que se va a convertir.

style
NumberStyles

Combinación bit a bit de valores de enumeración que indica el formato permitido de s. Un valor típico que se debe especificar es Integer.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre s.

result
SByte

Cuando este método devuelve , contiene el valor entero con signo de 8 bits equivalente al número contenido en s, si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Se produce un error en la conversión si el parámetro s es null o Empty, no está en un formato compatible con styleo representa un número menor que SByte.MinValue o mayor que SByte.MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.

Devoluciones

true si s se convirtió correctamente; de lo contrario, false.

Atributos

Se aplica a

TryParse(String, NumberStyles, IFormatProvider, SByte)

Source:
SByte.cs
Source:
SByte.cs
Source:
SByte.cs

Importante

Esta API no es conforme a CLS.

Alternativa conforme a CLS
System.Int16.TryParse(String, Int16)

Intenta convertir la representación de cadena de un número en un estilo especificado y un formato específico de la referencia cultural a su SByte equivalente y devuelve un valor que indica si la conversión se realizó correctamente.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = System::Numerics::INumberBase<System::SByte>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out sbyte result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As SByte) As Boolean

Parámetros

s
String

Cadena que representa un número que se va a convertir.

style
NumberStyles

Combinación bit a bit de valores de enumeración que indica el formato permitido de s. Un valor típico que se debe especificar es Integer.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre s.

result
SByte

Cuando este método devuelve , contiene el valor entero con signo de 8 bits equivalente al número contenido en s, si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Se produce un error en la conversión si el parámetro s es null o Empty, no está en un formato compatible con styleo representa un número menor que SByte.MinValue o mayor que SByte.MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.

Devoluciones

true si s se convirtió correctamente; de lo contrario, false.

Atributos

Excepciones

style no es un valor NumberStyles.

-o-

style no es una combinación de valores AllowHexSpecifier y HexNumber.

Ejemplos

En el ejemplo siguiente se llama al método TryParse(String, NumberStyles, IFormatProvider, SByte) con varios valores de cadena y NumberStyles diferentes.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;
      
      numericString = "106";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);
      
      numericString = "-106";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);
      
      numericString = "103.00";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);
      
      numericString = "103.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "10E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles); 
      
      numericString = "12E-01";
      CallTryParse(numericString, styles);
          
      numericString = "12E01";
      CallTryParse(numericString, styles); 
      
      numericString = "C8";
      CallTryParse(numericString, NumberStyles.HexNumber);
      
      numericString = "0x8C";
      CallTryParse(numericString, NumberStyles.HexNumber);
   }
   
   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      sbyte number;
      bool result = SByte.TryParse(stringToConvert, styles, 
                                   CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine($"Converted '{stringToConvert}' to {number}.");
      else
         Console.WriteLine($"Attempted conversion of '{stringToConvert}' failed.");
   }
}
// The example displays the following output:
//       Converted '106' to 106.
//       Attempted conversion of '-106' failed.
//       Converted '103.00' to 103.
//       Attempted conversion of '103.72' failed.
//       Converted '10E-01' to 1.
//       Attempted conversion of '12E-01' failed.
//       Converted '12E01' to 120.
//       Converted 'C8' to -56.
//       Attempted conversion of '0x8C' failed.
open System
open System.Globalization

let callTryParse (stringToConvert: string) styles =
    match SByte.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
    | true, number ->
        printfn $"Converted '{stringToConvert}' to {number}."
    | _ ->
        printfn $"Attempted conversion of '{stringToConvert}' failed."

[<EntryPoint>]
let main _ =
    let numericString = "106"
    let styles = NumberStyles.Integer
    callTryParse numericString styles
    
    let numericString = "-106"
    let styles = NumberStyles.None
    callTryParse numericString styles
    
    let numericString = "103.00"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
    callTryParse numericString styles
    
    let numericString = "103.72"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
    callTryParse numericString styles

    let numericString = "10E-01"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
    callTryParse numericString styles 
    
    let numericString = "12E-01"
    callTryParse numericString styles
        
    let numericString = "12E01"
    callTryParse numericString styles 
    
    let numericString = "C8"
    callTryParse numericString NumberStyles.HexNumber
    
    let numericString = "0x8C"
    callTryParse numericString NumberStyles.HexNumber
    0

// The example displays the following output:
//       Converted '106' to 106.
//       Attempted conversion of '-106' failed.
//       Converted '103.00' to 103.
//       Attempted conversion of '103.72' failed.
//       Converted '10E-01' to 1.
//       Attempted conversion of '12E-01' failed.
//       Converted '12E01' to 120.
//       Converted 'C8' to -56.
//       Attempted conversion of '0x8C' failed.
Imports System.Globalization

Module StringParsing
   Public Sub Main()
      Dim numericString As String
      Dim styles As NumberStyles
      
      numericString = "106"
      styles = NumberStyles.Integer
      CallTryParse(numericString, styles)
      
      numericString = "-106"
      styles = NumberStyles.None
      CallTryParse(numericString, styles)
      
      numericString = "103.00"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)
      
      numericString = "103.72"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)

      numericString = "10E-01"
      styles = NumberStyles.Integer Or NumberStyles.AllowExponent
      CallTryParse(numericString, styles) 
      
      numericString = "12E-01"
      CallTryParse(numericString, styles)
          
      numericString = "12E01"
      CallTryParse(numericString, styles) 
      
      numericString = "C8"
      CallTryParse(numericString, NumberStyles.HexNumber)
      
      numericString = "0x8C"
      CallTryParse(numericString, NumberStyles.HexNumber)
   End Sub
   
   Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
      Dim number As SByte
      Dim result As Boolean = SByte.TryParse(stringToConvert, styles, _
                                             CultureInfo.InvariantCulture, 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 '106' to 106.
'       Attempted conversion of '-106' failed.
'       Converted '103.00' to 103.
'       Attempted conversion of '103.72' failed.
'       Converted '10E-01' to 1.
'       Attempted conversion of '12E-01' failed.
'       Converted '12E01' to 120.
'       Converted 'C8' to -56.
'       Attempted conversion of '0x8C' failed.

Comentarios

El método TryParse(String, NumberStyles, IFormatProvider, SByte) es similar al método Parse(String, NumberStyles, IFormatProvider), salvo que no produce una excepción si se produce un error en la conversión. Este método elimina la necesidad de usar el control de excepciones para probar un FormatException si value no es válido y no se puede analizar correctamente.

El parámetro style define los elementos de estilo (como espacios en blanco o un signo positivo o negativo) que se permiten en el parámetro value para que la operación de análisis se realice correctamente. Debe ser una combinación de marcas de bits de la enumeración NumberStyles. Según el valor de style, el parámetro value puede incluir los siguientes elementos:

[ws] [$] [signo] [dígitos,]dígitos[.fractional_digits][E[signo]exponential_digits][ws]

Si el parámetro style incluye AllowHexSpecifier, el parámetro value puede incluir los siguientes elementos:

[ws]hexdigits[ws]

Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.

Elemento Descripción
ws Espacio en blanco opcional. El espacio en blanco puede aparecer al principio de value si style incluye la marca NumberStyles.AllowLeadingWhite o al final de value si style incluye la marca NumberStyles.AllowTrailingWhite.
$ Símbolo de moneda específico de la referencia cultural. Su posición en la cadena se define mediante la propiedad CurrencyPositivePattern del objeto NumberFormatInfo devuelto por el método GetFormat del parámetro provider. El símbolo de moneda puede aparecer en value si style incluye la marca NumberStyles.AllowCurrencySymbol.
de signo Un signo opcional. El signo puede aparecer al principio de value si style incluye la marca NumberStyles.AllowLeadingSign y puede aparecer al final de value si style incluye la marca NumberStyles.AllowTrailingSign. Los paréntesis se pueden usar en value para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses.
de dígitos de Secuencia de dígitos de 0 a 9.
, Separador de grupo específico de la referencia cultural. El separador de grupo de la referencia cultural especificada por provider puede aparecer en value si style incluye la marca NumberStyles.AllowThousands.
. Símbolo de separador decimal específico de la referencia cultural. El símbolo decimal de la referencia cultural especificada por provider puede aparecer en value si style incluye la marca NumberStyles.AllowDecimalPoint.
fractional_digits Una o varias apariciones del dígito 0. Los dígitos fraccionarios solo pueden aparecer en value si style incluye la marca NumberStyles.AllowDecimalPoint.
E Carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica). El parámetro value puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.
exponential_digits Secuencia de dígitos de 0 a 9. El parámetro value puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.
hexadecimas Secuencia de dígitos hexadecimales de 0 a f o 0 a F.

Nota

La operación de análisis omite los caracteres NUL (U+0000) de s, independientemente del valor del argumento style.

Una cadena con dígitos decimales solo (que corresponde a la marca de NumberStyles.None) siempre analiza correctamente. La mayoría de los miembros de NumberStyles restantes controlan los elementos de control que pueden estar presentes, pero no deben estar presentes, en esta cadena de entrada. En la tabla siguiente se indica cómo afectan los miembros de NumberStyles individuales a los elementos que pueden estar presentes en value.

Valores de NumberStyles no compuestos Elementos permitidos en el valor además de dígitos
None Solo dígitos decimales.
AllowDecimalPoint El separador decimal (.) y los elementos fractional_digits. Sin embargo, fractional_digits debe constar de solo uno o más 0 dígitos, o bien el método devuelve false.
AllowExponent El carácter "e" o "E", que indica la notación exponencial, junto con exponential_digits. Si value representa un número en notación exponencial, no puede tener un componente fraccionario distinto de cero.
AllowLeadingWhite Elemento ws al principio de value.
AllowTrailingWhite Elemento ws al final de value.
AllowLeadingSign Elemento signo signo antes de dígitos.
AllowTrailingSign El elemento signo después de dígitos.
AllowParentheses El signo elemento en forma de paréntesis que incluye el valor numérico.
AllowThousands Elemento separador de grupo (,).
AllowCurrencySymbol Elemento currency ($).
Currency Todos los elementos. Sin embargo, value no puede representar un número hexadecimal ni un número en notación exponencial.
Float El elemento ws al principio o al final de value, signo al principio de valuey el símbolo decimal (.). El parámetro value también puede usar la notación exponencial.
Number Los ws, signo, separador de grupo (,) y separadores decimales (.).
Any Todos los elementos. Sin embargo, value no puede representar un número hexadecimal.

Si se usa la marca NumberStyles.AllowHexSpecifier, value debe ser un valor hexadecimal. Los dígitos hexadecimales válidos son 0-9, a-f y A-F. Las únicas marcas que pueden estar presentes en style son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles tiene un estilo compuesto, HexNumber, que incluye ambas marcas de espacio en blanco).

Nota

Si value es la representación de cadena de un número hexadecimal, no puede ir precedida de ninguna decoración (como 0x o &h) que la diferencia como un número hexadecimal. Esto hace que se produzca un error en la conversión.

El parámetro provider es una implementación de IFormatProvider. Su método GetFormat devuelve un objeto NumberFormatInfo que proporciona información específica de la referencia cultural sobre el formato de value. El parámetro provider puede ser cualquiera de los siguientes:

  • Objeto CultureInfo que representa la referencia cultural que proporciona información de formato. Su método GetFormat devuelve el objeto NumberFormatInfo que proporciona información de formato numérico para esa referencia cultural.

  • Objeto NumberFormatInfo que proporciona información de formato numérico. (Su implementación de GetFormat simplemente se devuelve a sí misma).

  • Objeto personalizado que implementa IFormatProvider. Su método GetFormat crea instancias y devuelve el objeto NumberFormatInfo que proporciona información de formato.

Si provider es null, se usa el objeto NumberFormatInfo para la referencia cultural actual.

Consulte también

Se aplica a