SByte.TryParse Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Convierte la representación en forma de cadena de un número en el entero de 8 bits con signo equivalente. Un código devuelto indica si la conversión fue correcta 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 valor SByte equivalente y devuelve un valor que indica si la conversión se ha realizado correctamente. |
TryParse(String, SByte) |
Intenta convertir la representación en forma de cadena de un número en su equivalente SByte y devuelve un valor que indica si la conversión tuvo éxito. |
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 con el estilo y el formato específico de la referencia cultural que se hayan especificado en su valor SByte equivalente y devuelve un valor que indica si la conversión se ha realizado correctamente. |
TryParse(String, NumberStyles, IFormatProvider, SByte) |
Intenta convertir la representación de cadena de un número con un estilo específico y un formato específico de la referencia cultural en su equivalente de SByte y devuelve un valor que indica si la conversión fue correcta. |
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
Un objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text
.
- result
- SByte
Al devolver, contiene el resultado de analizar utf8Text
correctamente o un valor no definido en caso de error.
Devoluciones
true
es si utf8Text
se ha analizado correctamente; en caso contrario, false
es .
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 valor SByte equivalente y devuelve un valor que indica si la conversión se ha realizado 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>
Un intervalo que contiene los caracteres que representan el número que se va a convertir.
- result
- SByte
El resultado que devuelve este método contiene un 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 produce un error en la conversión. Se produce un error en la conversión si el s
parámetro 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; en caso 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 en forma de cadena de un número en su equivalente SByte y devuelve un valor que indica si la conversión tuvo éxito.
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
El resultado que devuelve este método contiene un 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 produce un error en la conversión. Se produce un error en la conversión si el s
parámetro 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; en caso contrario, false
.
- Atributos
Ejemplos
En el ejemplo siguiente se intentan convertir las cadenas de una matriz SByte en valores llamando al TryParse(String, SByte) método .
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 SByte.TryParse(String, SByte) método es similar al SByte.Parse(String) método , 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 si FormatExceptionvalue
no es válido y no se puede analizar correctamente.
El s
parámetro debe ser la representación de cadena de un número decimal con el formato siguiente:
[ws] [sign] digits[ws]
Los elementos de los corchetes ([ y ]) son opcionales. En esta tabla se describe cada elemento.
Elemento | Descripción |
---|---|
ws | Espacio en blanco opcional. |
sign | Un signo opcional. Los caracteres de signo válidos se determinan mediante las NumberFormatInfo.NegativeSign propiedades y NumberFormatInfo.PositiveSign de la referencia cultural actual. |
dígitos | Secuencia de dígitos decimales comprendidos entre 0 y 9. |
Nota
La cadena especificada por el value
parámetro no puede contener ningún separador de grupo ni separador decimal, y no puede tener una parte decimal.
El s
parámetro se interpreta mediante el NumberStyles.Integer estilo . 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 TryParse(String, NumberStyles, IFormatProvider, SByte) método .
El s
parámetro se analiza mediante la información de formato de un NumberFormatInfo objeto para la referencia cultural actual. Para obtener más información, vea NumberFormatInfo.CurrentInfo.
Esta sobrecarga interpreta todos los dígitos del value
parámetro como dígitos decimales. Para analizar la representación de cadena de un número hexadecimal, llame a la TryParse(String, NumberStyles, IFormatProvider, SByte) sobrecarga en su lugar.
Consulte también
- Ejemplo: Utilidad de formato WinForms de .NET Core (C#)
- Ejemplo: Utilidad de formato WinForms de .NET Core (Visual Basic)
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 van a analizar.
- provider
- IFormatProvider
Un 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 s
correctamente o un valor indefinido en caso de error.
Devoluciones
true
es si s
se ha analizado correctamente; en caso contrario, false
es .
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
Un objeto que proporciona información de formato específica de la referencia cultural sobre s
.
- result
- SByte
Cuando este método vuelve, contiene el resultado de analizar s
correctamente o un valor no definido en caso de error.
Devoluciones
true
es si s
se ha analizado correctamente; en caso contrario, false
es .
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
Un objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text
.
- result
- SByte
Al devolver, contiene el resultado de analizar utf8Text
correctamente o un valor no definido en caso de error.
Devoluciones
true
es si utf8Text
se ha analizado correctamente; en caso contrario, false
es .
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; se sobrescribirán todos los valores proporcionados originalmente en el resultado.
Devoluciones
true
si utf8Text
se convirtió correctamente; en caso 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 con el estilo y el formato específico de la referencia cultural que se hayan especificado en su valor SByte equivalente y devuelve un valor que indica si la conversión se ha realizado 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>
Un 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 que se especifica de forma habitual es Integer.
- provider
- IFormatProvider
Objeto que proporciona información de formato específica de la referencia cultural acerca de s
.
- result
- SByte
El resultado que devuelve este método contiene el valor entero con signo de 8 bits equivalente al número contenido en s
, si la conversión se realizó correctamente, o bien, cero si no se realizó correctamente. Se produce un error en la conversión si el s
parámetro es null
o Empty, no está en un formato compatible con style
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; en caso 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 con un estilo específico y un formato específico de la referencia cultural en su equivalente de SByte y devuelve un valor que indica si la conversión fue correcta.
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 que se especifica de forma habitual es Integer.
- provider
- IFormatProvider
Objeto que proporciona información de formato específica de la referencia cultural acerca de s
.
- result
- SByte
El resultado que devuelve este método contiene el valor entero con signo de 8 bits equivalente al número contenido en s
, si la conversión se realizó correctamente, o bien, cero si no se realizó correctamente. Se produce un error en la conversión si el s
parámetro es null
o Empty, no está en un formato compatible con style
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; en caso contrario, false
.
- Atributos
Excepciones
style
no es un valor NumberStyles.
o bien
style
no es una combinación de valores AllowHexSpecifier y HexNumber.
Ejemplos
En el ejemplo siguiente se llama al TryParse(String, NumberStyles, IFormatProvider, SByte) método con una serie de cadenas y NumberStyles valores 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 TryParse(String, NumberStyles, IFormatProvider, SByte) método es similar al Parse(String, NumberStyles, IFormatProvider) método , 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 si FormatExceptionvalue
no es válido y no se puede analizar correctamente.
El style
parámetro define los elementos de estilo (como el espacio en blanco o un signo positivo o negativo) que se permiten en el value
parámetro para que la operación de análisis se realice correctamente. Debe ser una combinación de marcas de bits de la NumberStyles enumeración. Según el valor de style
, el value
parámetro puede incluir los siguientes elementos:
[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
Si el style
parámetro incluye AllowHexSpecifier, el value
parámetro puede incluir los siguientes elementos:
[ws] hexdigits[ws]
Los elementos de los corchetes ([ y ]) son opcionales. En esta tabla se describe cada elemento.
Elemento | Descripción |
---|---|
ws | Espacio en blanco opcional. El espacio en blanco puede aparecer al principio de value si incluye la NumberStyles.AllowLeadingWhite marca o al final de value si style incluye la NumberStyles.AllowTrailingWhite marca .style |
$ | Símbolo de moneda específico de la referencia cultural. Su posición en la cadena se define mediante la CurrencyPositivePattern propiedad del NumberFormatInfo objeto devuelto por el GetFormat método del provider parámetro . El símbolo de moneda puede aparecer en value si style incluye la NumberStyles.AllowCurrencySymbol marca . |
sign | Un signo opcional. El signo puede aparecer al principio de value si incluye la NumberStyles.AllowLeadingSign marca y puede aparecer al final de value si style incluye la NumberStyles.AllowTrailingSignstyle marca. Los paréntesis se pueden usar en value para indicar un valor negativo si style incluye la NumberStyles.AllowParentheses marca . |
dígitos | 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 NumberStyles.AllowThousands marca . |
. | Símbolo de separador decimal específico de la referencia cultural. El símbolo de separador decimal de la referencia cultural especificada por provider puede aparecer en value si style incluye la NumberStyles.AllowDecimalPoint marca . |
fractional_digits | Una o varias apariciones del dígito 0. Los dígitos fraccionarios solo pueden aparecer en value si style incluye la NumberStyles.AllowDecimalPoint marca . |
E | El carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica). El value parámetro puede representar un número en notación exponencial si style incluye la NumberStyles.AllowExponent marca . |
exponential_digits | Secuencia de dígitos de 0 a 9. El value parámetro puede representar un número en notación exponencial si style incluye la NumberStyles.AllowExponent marca . |
hexdigits | Secuencia de dígitos hexadecimales de 0 a f, o 0 a F. |
Nota
La operación de análisis omite todos los caracteres NUL (U+0000) de s
, independientemente del valor del style
argumento.
Una cadena con dígitos decimales solo (que corresponde a la NumberStyles.None marca) siempre analiza correctamente. La mayoría de los miembros restantes NumberStyles controlan los elementos que pueden estar presentes, pero no son necesarios para estar presentes, en esta cadena de entrada. En la tabla siguiente se indica cómo afectan los miembros individuales NumberStyles a los elementos que pueden estar presentes en value
.
Valores no compuestos NumberStyles |
Elementos permitidos en el valor además de dígitos |
---|---|
None | Solo dígitos decimales. |
AllowDecimalPoint | Los elementos decimales (.) y fractional_digits . Sin embargo, fractional_digits debe constar de solo uno o más 0 dígitos, o 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 fraccionaria distinto de cero. |
AllowLeadingWhite | Elemento ws al principio de value . |
AllowTrailingWhite | Elemento ws al final de value . |
AllowLeadingSign | Elemento de signo antes de los dígitos. |
AllowTrailingSign | Elemento sign después de dígitos. |
AllowParentheses | Elemento de signo 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 o un número en notación exponencial. |
Float | El elemento ws al principio o al final de value , firma al principio de value y el símbolo de separador decimal (.). El value parámetro también puede usar la notación exponencial. |
Number | Los elementos ws, sign, group separator (,) y decimal point (.). |
Any | Todos los elementos. Sin embargo, value no puede representar un número hexadecimal. |
Si se usa la NumberStyles.AllowHexSpecifier marca , 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 NumberStyles enumeración 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 diferencie como un número hexadecimal. Esto hace que se produzca un error en la conversión.
El provider
parámetro es una IFormatProvider implementación. Su GetFormat método devuelve un NumberFormatInfo objeto que proporciona información específica de la referencia cultural sobre el formato de value
. El provider
parámetro puede ser cualquiera de los siguientes:
Objeto CultureInfo que representa la referencia cultural que proporciona información de formato. Su GetFormat método devuelve el NumberFormatInfo objeto 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 devuelve a sí mismo).
Objeto personalizado que implementa IFormatProvider. Su GetFormat método crea una instancia y devuelve el NumberFormatInfo objeto que proporciona información de formato.
Si provider
es null
, se usa el NumberFormatInfo objeto de la referencia cultural actual.
Consulte también
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de