SByte.Parse 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.
Sobrecargas
Parse(String, NumberStyles, IFormatProvider) |
Convierte la representación en forma de cadena de un número con el estilo y el formato específico de la referencia cultural que se hayan especificado en el entero de 8 bits con signo equivalente. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Convierte la representación de intervalo de un número con el estilo y el formato específicos de la referencia cultural que se hayan especificado en el entero de 8 bits con signo equivalente. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Analiza un intervalo de caracteres UTF-8 en un valor. |
Parse(String, IFormatProvider) |
Convierte la representación en forma de cadena de un número en el formato específico de la referencia cultural que se haya especificado en el entero de 8 bits con signo equivalente. |
Parse(String) |
Convierte la representación en forma de cadena de un número en el entero de 8 bits con signo equivalente. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Analiza un intervalo de caracteres en un valor. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Analiza un intervalo de caracteres UTF-8 en un valor. |
Parse(String, NumberStyles) |
Convierte la representación en forma de cadena de un número con el estilo especificado en el entero de 8 bits con signo equivalente. |
Parse(String, NumberStyles, IFormatProvider)
- Source:
- SByte.cs
- Source:
- SByte.cs
- Source:
- SByte.cs
Importante
Esta API no es conforme a CLS.
- Alternativa conforme a CLS
- System.Int16.Parse(String, NumberStyles, IFormatProvider)
Convierte la representación en forma de cadena de un número con el estilo y el formato específico de la referencia cultural que se hayan especificado en el entero de 8 bits con signo equivalente.
public:
static System::SByte Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static System::SByte Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::SByte>::Parse;
[System.CLSCompliant(false)]
public static sbyte Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static sbyte Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
[System.CLSCompliant(false)]
public static sbyte Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> sbyte
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> sbyte
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As SByte
Parámetros
- s
- String
Cadena que contiene el número que se va a convertir. La cadena se interpreta usando el estilo especificado por 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
. 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
. Si provider
es null
, se usa la referencia cultural actual del subproceso.
Devoluciones
Un valor con signo de 8 bits que es equivalente al número especificado en el parámetro s
.
Implementaciones
- Atributos
Excepciones
style
no es un valor NumberStyles.
o bien
style
no es una combinación de AllowHexSpecifier y HexNumber.
s
es null
.
s
no está en un formato compatible con style
.
s
representa un número menor que SByte.MinValue o mayor que SByte.MaxValue.
o bien
s
incluye dígitos fraccionarios distintos de cero.
Ejemplos
En el Parse(String, NumberStyles, IFormatProvider) ejemplo siguiente se muestra el uso del método para convertir varias representaciones de cadena de números en valores enteros con signo.
using System;
using System.Globalization;
public class SByteConversion
{
NumberFormatInfo provider = NumberFormatInfo.CurrentInfo;
public static void Main()
{
string stringValue;
NumberStyles style;
stringValue = " 123 ";
style = NumberStyles.None;
CallParseOperation(stringValue, style);
stringValue = "000,000,123";
style = NumberStyles.Integer | NumberStyles.AllowThousands;
CallParseOperation(stringValue, style);
stringValue = "-100";
style = NumberStyles.AllowLeadingSign;
CallParseOperation(stringValue, style);
stringValue = "100-";
style = NumberStyles.AllowLeadingSign;
CallParseOperation(stringValue, style);
stringValue = "100-";
style = NumberStyles.AllowTrailingSign;
CallParseOperation(stringValue, style);
stringValue = "$100";
style = NumberStyles.AllowCurrencySymbol;
CallParseOperation(stringValue, style);
style = NumberStyles.Integer;
CallParseOperation(stringValue, style);
style = NumberStyles.AllowDecimalPoint;
CallParseOperation("100.0", style);
stringValue = "1e02";
style = NumberStyles.AllowExponent;
CallParseOperation(stringValue, style);
stringValue = "(100)";
style = NumberStyles.AllowParentheses;
CallParseOperation(stringValue, style);
}
private static void CallParseOperation(string stringValue,
NumberStyles style)
{
sbyte number;
if (stringValue == null)
Console.WriteLine("Cannot parse a null string...");
try
{
number = sbyte.Parse(stringValue, style);
Console.WriteLine("SByte.Parse('{0}', {1})) = {2}",
stringValue, style, number);
}
catch (FormatException)
{
Console.WriteLine("'{0}' and {1} throw a FormatException",
stringValue, style);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is outside the range of a signed byte",
stringValue);
}
}
}
// The example displays the following information to the console:
// ' 123 ' and None throw a FormatException
// SByte.Parse('000,000,123', Integer, AllowThousands)) = 123
// SByte.Parse('-100', AllowLeadingSign)) = -100
// '100-' and AllowLeadingSign throw a FormatException
// SByte.Parse('100-', AllowTrailingSign)) = -100
// SByte.Parse('$100', AllowCurrencySymbol)) = 100
// '$100' and Integer throw a FormatException
// SByte.Parse('100.0', AllowDecimalPoint)) = 100
// SByte.Parse('1e02', AllowExponent)) = 100
// SByte.Parse('(100)', AllowParentheses)) = -100
open System
open System.Globalization
let provider = NumberFormatInfo.CurrentInfo
let callParseOperation stringValue (style: NumberStyles) =
if stringValue = null then
printfn "Cannot parse a null string..."
else
try
let number = SByte.Parse(stringValue, style)
printfn $"SByte.Parse('{stringValue}', {style})) = {number}"
with
| :? FormatException ->
printfn $"'{stringValue}' and {style} throw a FormatException"
| :? OverflowException ->
printfn $"'{stringValue}' is outside the range of a signed byte"
[<EntryPoint>]
let main _ =
let stringValue = " 123 "
let style = NumberStyles.None
callParseOperation stringValue style
let stringValue = "000,000,123"
let style = NumberStyles.Integer ||| NumberStyles.AllowThousands
callParseOperation stringValue style
let stringValue = "-100"
let style = NumberStyles.AllowLeadingSign
callParseOperation stringValue style
let stringValue = "100-"
let style = NumberStyles.AllowLeadingSign
callParseOperation stringValue style
let stringValue = "100-"
let style = NumberStyles.AllowTrailingSign
callParseOperation stringValue style
let stringValue = "$100"
let style = NumberStyles.AllowCurrencySymbol
callParseOperation stringValue style
let style = NumberStyles.Integer
callParseOperation stringValue style
let style = NumberStyles.AllowDecimalPoint
callParseOperation "100.0" style
let stringValue = "1e02"
let style = NumberStyles.AllowExponent
callParseOperation stringValue style
let stringValue = "(100)"
let style = NumberStyles.AllowParentheses
callParseOperation stringValue style
0
// The example displays the following information to the console:
// ' 123 ' and None throw a FormatException
// SByte.Parse('000,000,123', Integer, AllowThousands)) = 123
// SByte.Parse('-100', AllowLeadingSign)) = -100
// '100-' and AllowLeadingSign throw a FormatException
// SByte.Parse('100-', AllowTrailingSign)) = -100
// SByte.Parse('$100', AllowCurrencySymbol)) = 100
// '$100' and Integer throw a FormatException
// SByte.Parse('100.0', AllowDecimalPoint)) = 100
// SByte.Parse('1e02', AllowExponent)) = 100
// SByte.Parse('(100)', AllowParentheses)) = -100
Imports System.Globalization
Module modMain
Public Sub Main()
Dim byteString As String
byteString = " 123"
ParseString(byteString, NumberStyles.None)
ParseString(byteString, NumberStyles.Integer)
byteString = "3A"
ParseString(byteString, NumberStyles.AllowHexSpecifier)
byteString = "21"
ParseString(byteString, NumberStyles.Integer)
ParseString(byteString, NumberStyles.AllowHexSpecifier)
byteString = "-22"
ParseString(byteString, NumberStyles.Integer)
ParseString(byteString, NumberStyles.AllowParentheses)
byteString = "(45)"
ParseString(byteString, NumberStyles.AllowParentheses)
byteString = "000,000,056"
ParseString(byteString, NumberStyles.Integer)
ParseString(byteString, NumberStyles.Integer Or NumberStyles.AllowThousands)
End Sub
Private Sub ParseString(value As String, style As NumberStyles)
Dim number As SByte
If value Is Nothing Then Console.WriteLine("Cannot parse a null string...")
Try
number = SByte.Parse(value, style, NumberFormatInfo.CurrentInfo)
Console.WriteLine("SByte.Parse('{0}', {1}) = {2}", value, style, number)
Catch e As FormatException
Console.WriteLine("'{0}' and {1} throw a FormatException", value, style)
Catch e As OverflowException
Console.WriteLine("'{0}' is outside the range of a signed byte",
value)
End Try
End Sub
End Module
' The example displays the following information to the console:
' ' 123' and None throw a FormatException
' SByte.Parse(" 123", Integer)) = 123
' SByte.Parse("3A", AllowHexSpecifier)) = 58
' SByte.Parse("21", Integer)) = 21
' SByte.Parse("21", AllowHexSpecifier)) = 33
' SByte.Parse("-22", Integer)) = -22
' '-22' and AllowParentheses throw a FormatException
' SByte.Parse("(45)", AllowParentheses)) = -45
' '000,000,056' and Integer throw a FormatException
' SByte.Parse("000,000,056", Integer, AllowThousands)) = 56
Comentarios
El style
parámetro define los elementos de estilo (como espacios en blanco o el símbolo de signo positivo o negativo) que se permiten en el s
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 s
parámetro puede incluir los siguientes elementos:
[ws] [$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]
Si style
incluye AllowHexSpecifier, el s
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 s si incluye la NumberStyles.AllowLeadingWhite marca y puede aparecer al final de s si style incluye la NumberStyles.AllowTrailingWhitestyle marca . |
$ | Símbolo de moneda específico de la referencia cultural. Su posición en la cadena se define mediante la NumberFormatInfo.CurrencyPositivePattern propiedad de la referencia cultural actual. El símbolo de moneda de la referencia cultural actual puede aparecer en s si style incluye la NumberStyles.AllowCurrencySymbol marca . |
sign | Un signo opcional. El signo puede aparecer al principio de s si incluye la NumberStyles.AllowLeadingSign marca y puede aparecer el final de s si style incluye la NumberStyles.AllowTrailingSignstyle marca . Los paréntesis se pueden usar en s para indicar un valor negativo si style incluye la NumberStyles.AllowParentheses marca . |
dígitos | Secuencia de dígitos de 0 a 9. |
. | Símbolo de separador decimal específico de la referencia cultural. El símbolo decimal de la referencia cultural actual puede aparecer en s si style incluye la NumberStyles.AllowDecimalPoint marca . |
fractional_digits | Una o varias apariciones del dígito 0-9 si style incluye la NumberStyles.AllowExponent marca, o una o varias apariciones del dígito 0 si no lo hace. Los dígitos fraccionarios solo pueden aparecer en s si style incluye la NumberStyles.AllowDecimalPoint marca . |
E | Carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica). El s 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 s 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 de 0 a F. |
Nota
La operación de análisis omite los caracteres NUL (U+0000) terminados, s
independientemente del valor del style
argumento.
Una cadena con dígitos decimales solo (que corresponde al NumberStyles.None estilo) siempre analiza correctamente. La mayoría de los miembros restantes NumberStyles controlan los elementos 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 individuales NumberStyles a los elementos que pueden estar presentes en s
.
Valores no compuestos NumberStyles |
Elementos permitidos además s de dígitos |
---|---|
NumberStyles.None | Solo dígitos decimales. |
NumberStyles.AllowDecimalPoint | Los elementos decimales (.) y fractional_digits . Sin embargo, si style no incluye la NumberStyles.AllowExponent marca, fractional_digits debe constar de solo uno o más dígitos; de lo contrario, se produce una OverflowException excepción . |
NumberStyles.AllowExponent | Carácter "e" o "E", que indica la notación exponencial, junto con exponential_digits. |
NumberStyles.AllowLeadingWhite | Elemento ws al principio de s . |
NumberStyles.AllowTrailingWhite | Elemento ws al final de s . |
NumberStyles.AllowLeadingSign | Signo positivo antes de los dígitos. |
NumberStyles.AllowTrailingSign | Un signo positivo después de los dígitos. |
NumberStyles.AllowParentheses | Paréntesis antes y después de los dígitos para indicar un valor negativo. |
NumberStyles.AllowThousands | Elemento separador de grupo (,). Aunque el separador de grupo puede aparecer en s , solo debe ir precedido de uno o varios dígitos. |
NumberStyles.AllowCurrencySymbol | Elemento currency ($). |
Si se usa la NumberStyles.AllowHexSpecifier marca , s
debe ser un valor hexadecimal. Los dígitos hexadecimales válidos son 0-9, a-f y A-F. Los únicos otros marcadores que se pueden combinar con él son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite. (La NumberStyles enumeración incluye un estilo de número compuesto, NumberStyles.HexNumber, que incluye ambas marcas de espacio en blanco).
Nota
Si el s
parámetro 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 la operación de análisis produzca una excepción.
Si s
representa un número hexadecimal, el Parse(String, NumberStyles) método interpreta el bit de orden superior del byte como un bit de signo.
El provider
parámetro es una IFormatProvider implementación cuyo GetFormat método devuelve un NumberFormatInfo objeto que proporciona información específica de la referencia cultural sobre el formato de s
. Hay tres maneras de usar el provider
parámetro para proporcionar información de formato personalizada a la operación de análisis:
Puede pasar el objeto real NumberFormatInfo que proporciona información de formato. (Su implementación de GetFormat simplemente devuelve a sí mismo).
Puede pasar un CultureInfo objeto que especifique la referencia cultural cuyo formato se va a usar. Su NumberFormat propiedad proporciona información de formato.
Puede pasar una implementación personalizada IFormatProvider . Su GetFormat método debe crear instancias y devolver el NumberFormatInfo objeto que proporciona información de formato.
Si provider
es null
, se usa el NumberFormatInfo objeto de la referencia cultural actual.
Se aplica a
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Source:
- SByte.cs
- Source:
- SByte.cs
- Source:
- SByte.cs
Importante
Esta API no es conforme a CLS.
Convierte la representación de intervalo de un número con el estilo y el formato específicos de la referencia cultural que se hayan especificado en el entero de 8 bits con signo equivalente.
public static sbyte Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
[System.CLSCompliant(false)]
public static sbyte Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
[System.CLSCompliant(false)]
public static sbyte Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> sbyte
[<System.CLSCompliant(false)>]
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> sbyte
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As SByte
Parámetros
- s
- ReadOnlySpan<Char>
Un intervalo que contiene los caracteres que representan el número que se va a convertir. El intervalo se interpreta mediante el estilo especificado por 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
. 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
. Si provider
es null
, se usa la referencia cultural actual del subproceso.
Devoluciones
Un valor con signo de 8 bits que es equivalente al número especificado en el parámetro s
.
Implementaciones
- Atributos
Se aplica a
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Source:
- SByte.cs
- Source:
- SByte.cs
Analiza un intervalo de caracteres UTF-8 en un valor.
public static sbyte Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> sbyte
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As SByte
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
.
Devoluciones
Resultado del análisis utf8Text
de .
Implementaciones
Se aplica a
Parse(String, IFormatProvider)
- Source:
- SByte.cs
- Source:
- SByte.cs
- Source:
- SByte.cs
Convierte la representación en forma de cadena de un número en el formato específico de la referencia cultural que se haya especificado en el entero de 8 bits con signo equivalente.
public:
static System::SByte Parse(System::String ^ s, IFormatProvider ^ provider);
public:
static System::SByte Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::SByte>::Parse;
[System.CLSCompliant(false)]
public static sbyte Parse (string s, IFormatProvider provider);
public static sbyte Parse (string s, IFormatProvider? provider);
[System.CLSCompliant(false)]
public static sbyte Parse (string s, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member Parse : string * IFormatProvider -> sbyte
static member Parse : string * IFormatProvider -> sbyte
Public Shared Function Parse (s As String, provider As IFormatProvider) As SByte
Parámetros
- s
- String
Cadena que representa el número que se va a convertir. La cadena se interpreta usando el estilo Integer.
- provider
- IFormatProvider
Objeto que proporciona información de formato específica de la referencia cultural acerca de s
. Si provider
es null
, se usa la referencia cultural actual del subproceso.
Devoluciones
Un entero con signo de 8 bits equivalente al número especificado en s
.
Implementaciones
- Atributos
Excepciones
s
es null
.
s
no tiene el formato correcto.
s
representa un número menor que SByte.MinValue o mayor que SByte.MaxValue.
Ejemplos
En el ejemplo siguiente se define un objeto personalizado NumberFormatInfo que define la tilde (~) como signo negativo. A continuación, analiza una serie de cadenas numéricas mediante este objeto personalizado NumberFormatInfo , así como un CultureInfo objeto que representa la referencia cultural invariable.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
NumberFormatInfo nf = new NumberFormatInfo();
nf.NegativeSign = "~";
string[] values = { "-103", "+12", "~16", " 1", "~255" };
IFormatProvider[] providers = { nf, CultureInfo.InvariantCulture };
foreach (IFormatProvider provider in providers)
{
Console.WriteLine("Conversions using {0}:", ((object) provider).GetType().Name);
foreach (string value in values)
{
try {
Console.WriteLine(" Converted '{0}' to {1}.",
value, SByte.Parse(value, provider));
}
catch (FormatException) {
Console.WriteLine(" Unable to parse '{0}'.", value);
}
catch (OverflowException) {
Console.WriteLine(" '{0}' is out of range of the SByte type.", value);
}
}
}
}
}
// The example displays the following output:
// Conversions using NumberFormatInfo:
// Unable to parse '-103'.
// Converted '+12' to 12.
// Converted '~16' to -16.
// Converted ' 1' to 1.
// '~255' is out of range of the SByte type.
// Conversions using CultureInfo:
// Converted '-103' to -103.
// Converted '+12' to 12.
// Unable to parse '~16'.
// Converted ' 1' to 1.
// Unable to parse '~255'.
open System
open System.Globalization
let nf = NumberFormatInfo()
nf.NegativeSign <- "~"
let values = [| "-103"; "+12"; "~16"; " 1"; "~255" |]
let providers: IFormatProvider[] = [| nf; CultureInfo.InvariantCulture |]
for provider in providers do
printfn $"Conversions using {(box provider).GetType().Name}:"
for value in values do
try
printfn $" Converted '{value}' to {SByte.Parse(value, provider)}."
with
| :? FormatException ->
printfn $" Unable to parse '{value}'."
| :? OverflowException ->
printfn $" '{value}' is out of range of the SByte type."
// The example displays the following output:
// Conversions using NumberFormatInfo:
// Unable to parse '-103'.
// Converted '+12' to 12.
// Converted '~16' to -16.
// Converted ' 1' to 1.
// '~255' is out of range of the SByte type.
// Conversions using CultureInfo:
// Converted '-103' to -103.
// Converted '+12' to 12.
// Unable to parse '~16'.
// Converted ' 1' to 1.
// Unable to parse '~255'.
Imports System.Globalization
Module Example
Public Sub Main()
Dim nf As New NumberFormatInfo()
nf.NegativeSign = "~"
Dim values() As String = { "-103", "+12", "~16", " 1", "~255" }
Dim providers() As IFormatProvider = { nf, CultureInfo.InvariantCulture }
For Each provider As IFormatProvider In providers
Console.WriteLine("Conversions using {0}:", CObj(provider).GetType().Name)
For Each value As String In values
Try
Console.WriteLine(" Converted '{0}' to {1}.", _
value, SByte.Parse(value, provider))
Catch e As FormatException
Console.WriteLine(" Unable to parse '{0}'.", value)
Catch e As OverflowException
Console.WriteLine(" '{0}' is out of range of the SByte type.", value)
End Try
Next
Next
End Sub
End Module
' The example displays '
' Conversions using NumberFormatInfo:
' Unable to parse '-103'.
' Converted '+12' to 12.
' Converted '~16' to -16.
' Converted ' 1' to 1.
' '~255' is out of range of the SByte type.
' Conversions using CultureInfo:
' Converted '-103' to -103.
' Converted '+12' to 12.
' Unable to parse '~16'.
' Converted ' 1' to 1.
' Unable to parse '~255'.
Comentarios
El s
parámetro contiene un número del formulario:
[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. |
dígitos | Secuencia de dígitos comprendidos entre 0 y 9. |
El s
parámetro se interpreta mediante el Integer estilo . Además de los dígitos decimales del valor de byte, 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 s
, use el Parse(String, NumberStyles, IFormatProvider) método .
El provider
parámetro es una IFormatProvider implementación cuyo GetFormat método devuelve un NumberFormatInfo objeto que proporciona información específica de la referencia cultural sobre el formato de s
. Hay tres maneras de usar el provider
parámetro para proporcionar información de formato personalizada a la operación de análisis:
Puede pasar el objeto real NumberFormatInfo que proporciona información de formato. (Su implementación de GetFormat simplemente devuelve a sí mismo).
Puede pasar un CultureInfo objeto que especifique la referencia cultural cuyo formato se va a usar. Su NumberFormat propiedad proporciona información de formato.
Puede pasar una implementación personalizada IFormatProvider . Su GetFormat método debe crear instancias y devolver 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
Parse(String)
- Source:
- SByte.cs
- Source:
- SByte.cs
- Source:
- SByte.cs
Convierte la representación en forma de cadena de un número en el entero de 8 bits con signo equivalente.
public:
static System::SByte Parse(System::String ^ s);
[System.CLSCompliant(false)]
public static sbyte Parse (string s);
public static sbyte Parse (string s);
[<System.CLSCompliant(false)>]
static member Parse : string -> sbyte
static member Parse : string -> sbyte
Public Shared Function Parse (s As String) As SByte
Parámetros
- s
- String
Cadena que representa el número que se va a convertir. La cadena se interpreta usando el estilo Integer.
Devoluciones
Un entero con signo de 8 bits que es equivalente al número incluido en el parámetro s
.
- Atributos
Excepciones
s
es null
.
s
no está formado por un signo opcional seguido de una secuencia de dígitos (de cero a nueve).
s
representa un número menor que SByte.MinValue o mayor que SByte.MaxValue.
Ejemplos
En el ejemplo siguiente se muestra cómo convertir un valor de cadena en un valor de byte con signo mediante el Parse método . A continuación, el valor de byte firmado resultante se muestra en la consola.
// Define an array of numeric strings.
string[] values = { "-16", " -3", "+ 12", " +12 ", " 12 ",
"+120", "(103)", "192", "-160" };
// Parse each string and display the result.
foreach (string value in values)
{
try {
Console.WriteLine("Converted '{0}' to the SByte value {1}.",
value, SByte.Parse(value));
}
catch (FormatException) {
Console.WriteLine("'{0}' cannot be parsed successfully by SByte type.",
value);
}
catch (OverflowException) {
Console.WriteLine("'{0}' is out of range of the SByte type.",
value);
}
}
// The example displays the following output:
// Converted '-16' to the SByte value -16.
// Converted ' -3' to the SByte value -3.
// '+ 12' cannot be parsed successfully by SByte type.
// Converted ' +12 ' to the SByte value 12.
// Converted ' 12 ' to the SByte value 12.
// Converted '+120' to the SByte value 120.
// '(103)' cannot be parsed successfully by SByte type.
// '192' is out of range of the SByte type.
// '-160' is out of range of the SByte type.
open System
// Define an array of numeric strings.
let values =
[| "-16"; " -3"; "+ 12"; " +12 "; " 12 "
"+120"; "(103)"; "192"; "-160" |]
// Parse each string and display the result.
for value in values do
try
printfn $"Converted '{value}' to the SByte value {SByte.Parse value}."
with
| :? FormatException ->
printfn $"'{value}' cannot be parsed successfully by SByte type."
| :? OverflowException ->
printfn $"'{value}' is out of range of the SByte type."
// The example displays the following output:
// Converted '-16' to the SByte value -16.
// Converted ' -3' to the SByte value -3.
// '+ 12' cannot be parsed successfully by SByte type.
// Converted ' +12 ' to the SByte value 12.
// Converted ' 12 ' to the SByte value 12.
// Converted '+120' to the SByte value 120.
// '(103)' cannot be parsed successfully by SByte type.
// '192' is out of range of the SByte type.
// '-160' is out of range of the SByte type.
' Define an array of numeric strings.
Dim values() As String = { "-16", " -3", "+ 12", " +12 ", " 12 ", _
"+120", "(103)", "192", "-160" }
' Parse each string and display the result.
For Each value As String In values
Try
Console.WriteLine("Converted '{0}' to the SByte value {1}.", _
value, SByte.Parse(value))
Catch e As FormatException
Console.WriteLine("'{0}' cannot be parsed successfully by SByte type.", _
value)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range of the SByte type.", _
value)
End Try
Next
' The example displays the following output:
' Converted '-16' to the SByte value -16.
' Converted ' -3' to the SByte value -3.
' '+ 12' cannot be parsed successfully by SByte type.
' Converted ' +12 ' to the SByte value 12.
' Converted ' 12 ' to the SByte value 12.
' Converted '+120' to the SByte value 120.
' '(103)' cannot be parsed successfully by SByte type.
' '192' is out of range of the SByte type.
' '-160' is out of range of the SByte type.
Comentarios
El s
parámetro contiene un número del formulario:
[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. |
dígitos | Secuencia de dígitos comprendidos entre 0 y 9. |
El s
parámetro se interpreta mediante el NumberStyles.Integer estilo . Además de los dígitos decimales del valor de byte, solo se permiten espacios iniciales y finales con un signo positivo o negativo inicial. Para definir explícitamente los elementos de estilo que pueden estar presentes en s
, use el Parse(String, NumberStyles) método o Parse(String, NumberStyles, IFormatProvider) .
El s
parámetro se analiza mediante la información de formato de un NumberFormatInfo que se inicializa para la referencia cultural del sistema actual. Para obtener más información, vea NumberFormatInfo.CurrentInfo. Para analizar una cadena mediante la información de formato de alguna otra referencia cultural, use el Parse(String, NumberStyles, IFormatProvider) método .
Consulte también
Se aplica a
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Source:
- SByte.cs
- Source:
- SByte.cs
- Source:
- SByte.cs
Analiza un intervalo de caracteres en un valor.
public:
static System::SByte Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::SByte>::Parse;
public static sbyte Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> sbyte
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As SByte
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
.
Devoluciones
Resultado del análisis s
de .
Implementaciones
Se aplica a
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Source:
- SByte.cs
- Source:
- SByte.cs
Analiza un intervalo de caracteres UTF-8 en un valor.
public:
static System::SByte Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::SByte>::Parse;
public static sbyte Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> sbyte
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As SByte
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
.
Devoluciones
Resultado del análisis utf8Text
de .
Implementaciones
Se aplica a
Parse(String, NumberStyles)
- Source:
- SByte.cs
- Source:
- SByte.cs
- Source:
- SByte.cs
Convierte la representación en forma de cadena de un número con el estilo especificado en el entero de 8 bits con signo equivalente.
public:
static System::SByte Parse(System::String ^ s, System::Globalization::NumberStyles style);
[System.CLSCompliant(false)]
public static sbyte Parse (string s, System.Globalization.NumberStyles style);
public static sbyte Parse (string s, System.Globalization.NumberStyles style);
[<System.CLSCompliant(false)>]
static member Parse : string * System.Globalization.NumberStyles -> sbyte
static member Parse : string * System.Globalization.NumberStyles -> sbyte
Public Shared Function Parse (s As String, style As NumberStyles) As SByte
Parámetros
- s
- String
Cadena que contiene un número que se va a convertir. La cadena se interpreta usando el estilo especificado por 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
. Un valor que se especifica de forma habitual es Integer.
Devoluciones
Un entero con signo de 8 bits equivalente al número especificado en s
.
- Atributos
Excepciones
s
es null
.
s
no está en un formato compatible con style
.
s
representa un número menor que SByte.MinValue o mayor que SByte.MaxValue.
o bien
s
incluye dígitos fraccionarios distintos de cero.
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 analizan las representaciones de cadena de SByte valores con el Parse(String, NumberStyles) método . La referencia cultural actual del ejemplo es en-US.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
NumberStyles style;
sbyte number;
// Parse value with no styles allowed.
string[] values1 = { " 121 ", "121", "-121" };
style = NumberStyles.None;
Console.WriteLine("Styles: {0}", style.ToString());
foreach (string value in values1)
{
try {
number = SByte.Parse(value, style);
Console.WriteLine(" Converted '{0}' to {1}.", value, number);
}
catch (FormatException) {
Console.WriteLine(" Unable to parse '{0}'.", value);
}
}
Console.WriteLine();
// Parse value with trailing sign.
style = NumberStyles.Integer | NumberStyles.AllowTrailingSign;
string[] values2 = { " 103+", " 103 +", "+103", "(103)", " +103 " };
Console.WriteLine("Styles: {0}", style.ToString());
foreach (string value in values2)
{
try {
number = SByte.Parse(value, style);
Console.WriteLine(" Converted '{0}' to {1}.", value, number);
}
catch (FormatException) {
Console.WriteLine(" Unable to parse '{0}'.", value);
}
catch (OverflowException) {
Console.WriteLine(" '{0}' is out of range of the SByte type.", value);
}
}
Console.WriteLine();
}
}
// The example displays the following output:
// Styles: None
// Unable to parse ' 121 '.
// Converted '121' to 121.
// Unable to parse '-121'.
//
// Styles: Integer, AllowTrailingSign
// Converted ' 103+' to 103.
// Converted ' 103 +' to 103.
// Converted '+103' to 103.
// Unable to parse '(103)'.
// Converted ' +103 ' to 103.
open System
open System.Globalization
// Parse value with no styles allowed.
let values1 = [| " 121 "; "121"; "-121" |]
let style = NumberStyles.None
printfn $"Styles: {style}"
for value in values1 do
try
let number = SByte.Parse(value, style)
printfn $" Converted '{value}' to {number}."
with :? FormatException ->
printfn $" Unable to parse '{value}'."
printfn ""
// Parse value with trailing sign.
let style2 = NumberStyles.Integer ||| NumberStyles.AllowTrailingSign
let values2 = [| " 103+"; " 103 +"; "+103"; "(103)"; " +103 " |]
printfn $"Styles: {style2}"
for value in values2 do
try
let number = SByte.Parse(value, style2)
printfn $" Converted '{value}' to {number}."
with
| :? FormatException ->
printfn $" Unable to parse '{value}'."
| :? OverflowException ->
printfn $" '{value}' is out of range of the SByte type."
printfn ""
// The example displays the following output:
// Styles: None
// Unable to parse ' 121 '.
// Converted '121' to 121.
// Unable to parse '-121'.
//
// Styles: Integer, AllowTrailingSign
// Converted ' 103+' to 103.
// Converted ' 103 +' to 103.
// Converted '+103' to 103.
// Unable to parse '(103)'.
// Converted ' +103 ' to 103.
Imports System.Globalization
Module Example
Public Sub Main()
Dim style As NumberStyles
Dim number As SByte
' Parse value with no styles allowed.
Dim values1() As String = { " 121 ", "121", "-121" }
style = NumberStyles.None
Console.WriteLine("Styles: {0}", style.ToString())
For Each value As String In values1
Try
number = SByte.Parse(value, style)
Console.WriteLine(" Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine(" Unable to parse '{0}'.", value)
End Try
Next
Console.WriteLine()
' Parse value with trailing sign.
style = NumberStyles.Integer Or NumberStyles.AllowTrailingSign
Dim values2() As String = { " 103+", " 103 +", "+103", "(103)", " +103 " }
Console.WriteLine("Styles: {0}", style.ToString())
For Each value As String In values2
Try
number = SByte.Parse(value, style)
Console.WriteLine(" Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine(" Unable to parse '{0}'.", value)
Catch e As OverflowException
Console.WriteLine(" '{0}' is out of range of the SByte type.", value)
End Try
Next
Console.WriteLine()
End Sub
End Module
' The example displays the following output:
' Styles: None
' Unable to parse ' 121 '.
' Converted '121' to 121.
' Unable to parse '-121'.
'
' Styles: Integer, AllowTrailingSign
' Converted ' 103+' to 103.
' Converted ' 103 +' to 103.
' Converted '+103' to 103.
' Unable to parse '(103)'.
' Converted ' +103 ' to 103.
Comentarios
El style
parámetro define los elementos de estilo (como el espacio en blanco o el símbolo de signo positivo o negativo) que se permiten en el s
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 s
parámetro puede incluir los siguientes elementos:
[ws] [$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]
Si style
incluye NumberStyles.AllowHexSpecifier, el s
parámetro puede contener 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 s si incluye la NumberStyles.AllowLeadingWhite marca y puede aparecer al final de s si el estilo incluye la NumberStyles.AllowTrailingWhitestyle marca. |
$ | Símbolo de moneda específico de la referencia cultural. Su posición en la cadena se define mediante la NumberFormatInfo.CurrencyPositivePattern propiedad de la referencia cultural actual. El símbolo de moneda de la referencia cultural actual puede aparecer en s si style incluye la NumberStyles.AllowCurrencySymbol marca . |
sign | Un signo opcional. El signo puede aparecer al principio de s si incluye la NumberStyles.AllowLeadingSign marca y puede aparecer al final de s si style incluye la NumberStyles.AllowTrailingSignstyle marca. Los paréntesis se pueden usar en s para indicar un valor negativo si style incluye la NumberStyles.AllowParentheses marca . |
dígitos | Secuencia de dígitos de 0 a 9. |
. | Símbolo de separador decimal específico de la referencia cultural. El símbolo de separador decimal de la referencia cultural actual puede aparecer en s si style incluye la NumberStyles.AllowDecimalPoint marca . |
fractional_digits | Una o varias apariciones del dígito 0-9 si style incluye la NumberStyles.AllowExponent marca, o una o varias apariciones del dígito 0 si no lo hace. Los dígitos fraccionarios solo pueden aparecer en s 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 s parámetro puede representar un número en notación exponencial si style incluye la NumberStyles.AllowExponent marca . |
exponential_digits | Una o varias apariciones del dígito 0-9. El s 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 al NumberStyles.None estilo) 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 la cadena de entrada. En la tabla siguiente se indica cómo afectan los miembros individuales NumberStyles a los elementos que pueden estar presentes en s
.
Valores de NumberStyles no compuestos | Elementos permitidos en s además de dígitos |
---|---|
NumberStyles.None | Solo dígitos decimales. |
NumberStyles.AllowDecimalPoint | Los elementos decimales (.) y fractional_digits . Sin embargo, si style no incluye la NumberStyles.AllowExponent marca , fractional_digits debe constar de solo uno o más 0 dígitos; de lo contrario, se produce una OverflowException excepción . |
NumberStyles.AllowExponent | El carácter "e" o "E", que indica la notación exponencial, junto con exponential_digits. |
NumberStyles.AllowLeadingWhite | Elemento ws al principio de s . |
NumberStyles.AllowTrailingWhite | Elemento ws al final de s . |
NumberStyles.AllowLeadingSign | Signo positivo antes de los dígitos. |
NumberStyles.AllowTrailingSign | Signo positivo después de los dígitos. |
NumberStyles.AllowParentheses | Elemento de signo en forma de paréntesis que incluye el valor numérico. |
NumberStyles.AllowThousands | Elemento separador de grupo (,). Aunque el separador de grupo puede aparecer en s , solo debe ir precedido por uno o más de 0 dígitos. |
NumberStyles.AllowCurrencySymbol | Elemento currency ($). |
Si se usa la NumberStyles.AllowHexSpecifier marca , s
debe ser un valor hexadecimal. Los dígitos hexadecimales válidos son 0-9, a-f y A-F. No se admite un prefijo como "0x" y hace que se produzca un error en la operación de análisis. Las únicas marcas que se pueden combinar incluidas en style
son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite. (La NumberStyles enumeración incluye un estilo de número compuesto, NumberStyles.HexNumber, que incluye ambas marcas de espacio en blanco).
Nota
Si el s
parámetro 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 la operación de análisis produzca una excepción.
Si s
representa un número hexadecimal, el Parse(String, NumberStyles) método interpreta el bit de orden superior del byte como un bit de signo.
El s
parámetro se analiza mediante la información de formato de un NumberFormatInfo objeto que se inicializa para la referencia cultural del sistema actual. Para usar la información de formato de alguna otra referencia cultural, llame a la Parse(String, NumberStyles, IFormatProvider) sobrecarga.
Consulte también
Se aplica a
Comentaris
https://aka.ms/ContentUserFeedback.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu:Envieu i consulteu els comentaris de