Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

UInt64.TryParse (Método) (String, NumberStyles, IFormatProvider, UInt64%)

Intenta convertir la representación de cadena de un número en el estilo y en el formato específicos de la referencia cultural que se hayan indicado en el entero de 64 bits sin signo equivalente. Un valor devuelto indica si la conversión finalizó o no correctamente.

Esta API no es compatible con CLS. La alternativa compatible con CLS es Parse(String).

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

[CLSCompliantAttribute(false)]
public static bool TryParse(
	string s,
	NumberStyles style,
	IFormatProvider provider,
	out ulong result
)

Parámetros

s
Tipo: System.String
Una cadena que representa el número que se va a convertir. La cadena se interpreta usando el estilo especificado por el parámetro style.
style
Tipo: System.Globalization.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 NumberStyles.Integer.
provider
Tipo: System.IFormatProvider
Objeto que aporta información de formato específica de la referencia cultural acerca de s.
result
Tipo: System.UInt64%
El resultado de este método contiene el valor entero sin signo de 64 bits equivalente al número contenido en s si la conversión se realizó correctamente, o bien, cero si no se realizó correctamente. La conversión no se realiza correctamente si el parámetro s es null, no tiene un formato compatible con style o representa un número menor que UInt64.MinValue o mayor que UInt64.MaxValue. Este parámetro se pasa sin inicializar.

Valor devuelto

Tipo: System.Boolean
true si s se convirtió correctamente; de lo contrario, false.

ExcepciónCondición
ArgumentException

style no es un valor de NumberStyles.

O bien

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

El método TryParse(String, NumberStyles, IFormatProvider, UInt64) es similar al método Parse(String, NumberStyles, IFormatProvider), excepto que no produce ninguna excepción si se produce un error de conversión. Este método elimina la necesidad de usar el control de excepciones para probar una excepción FormatException si el parámetro s no sea válido y no pueda analizarse 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 s para que la operación de análisis se realice correctamente. Debe ser una combinación de marcadores de bit de la enumeración NumberStyles. En función del valor de style, el parámetro s puede incluir los elementos siguientes:

[db][$][signo][dígitos,]dígitos[.][E[signo]dígitos exponenciales][db]

Los elementos entre corchetes ([ y ]) son opcionales. O, si el parámetro style incluye NumberStyles.AllowHexSpecifier, el parámetro s puede incluir los elementos siguientes:

[db]dígitos hexadecimales[db]

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 s si style incluye la marca NumberStyles.AllowLeadingWhite, o al final de s si style incluye la marca NumberStyles.AllowTrailingWhite.

$

Símbolo de moneda específico de la referencia cultural. Su posición en la cadena viene definida por la propiedad CurrencyPositivePattern del objeto NumberFormatInfo devuelto por el método GetFormat del parámetro provider. El símbolo de moneda puede aparecer en s si style incluye el marcador NumberStyles.AllowCurrencySymbol.

sign

Signo opcional. El signo puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingSign, y puede aparecer al final de s si style incluye la marca NumberStyles.AllowTrailingSign. Pueden usarse paréntesis en s para indicar un valor negativo si style incluye el marcador NumberStyles.AllowParentheses. Sin embargo, si el signo negativo está presente, s puede representar solo el valor cero para que la operación de análisis tenga éxito.

dígitos

Secuencia de dígitos de 0 a 9.

,

Un separador de grupos específico de la referencia cultural. El separador de grupo de la referencia cultural especificada por provider puede aparecer en s si style incluye la marca NumberStyles.AllowThousands.

.

Símbolo separador de decimales específico de la referencia cultural. El símbolo separador de decimales de la referencia cultural especificada por provider puede aparecer en s si style incluye el marcador NumberStyles.AllowDecimalPoint.

dígitos fraccionarios

Una o más apariciones del dígito 0. Sólo pueden aparecer dígitos fraccionarios en s si style incluye el marcador NumberStyles.AllowDecimalPoint.

E

El carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica). El parámetro s puede representar un número en notación exponencial si style incluye el marcador NumberStyles.AllowExponent.

dígitos exponenciales

Secuencia de dígitos de 0 a 9. El parámetro s puede representar un número en notación exponencial si style incluye el marcador NumberStyles.AllowExponent.

hexdigits

Secuencia de dígitos hexadecimales de 0 a f o de 0 a F.

Una cadena formada únicamente por dígitos decimales (que se corresponde con el marcador NumberStyles.None) siempre se analiza correctamente. La mayoría de los miembros NumberStyles restantes controlan los elementos que pueden estar presentes en esta cadena de entrada, aunque no sean necesarios. La tabla siguiente indica la forma en que los miembros NumberStyles individuales afectan a los elementos que pueden estar presentes en s.

Valores NumberStyles no compuestos

Elementos permitidos en valor además de dígitos

None

Sólo dígitos decimales.

AllowDecimalPoint

Elementos de separador decimal (,) y dígitos fraccionarios. No obstante, el elemento dígitos fraccionarios debe estar compuesto únicamente de uno o más dígitos 0 porque, de lo contrario, el método devolverá false.

AllowExponent

El carácter "e" o "E", que indica la notación exponencial, junto con exponential_digits. Si s representa un número en notación exponencial, no puede tener un componente fraccionario distinto de cero.

AllowLeadingWhite

Elemento ws al principio de s.

AllowTrailingWhite

Elemento ws al final de s.

AllowLeadingSign

El elemento signo antes de dígitos.

AllowTrailingSign

El elemento signo después de dígitos.

AllowParentheses

Elemento signo en forma de paréntesis delimitando un valor numérico cero.

AllowThousands

El elemento separador de grupos (,).

AllowCurrencySymbol

El elemento de divisa ($).

Currency

Todos los elementos. Sin embargo, s no puede representar un número hexadecimal o un número en notación exponencial.

Float

Elemento eb al principio o al final de s, signo al principio de s y el símbolo del separador decimal (,) El parámetro s también puede utilizar la notación exponencial.

Number

Elementos eb, signo, separador de grupos (. y separador decimal (,).

Any

Todos los elementos. Sin embargo, s no puede representar un número hexadecimal.

Si se utiliza el marcador NumberStyles.AllowHexSpecifier, s debe ser un valor hexadecimal. Los únicos otros marcadores 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.)

NotaNota

Si s es la representación en forma de cadena de un número hexadecimal, no puede ir precedido de ninguna decoración (como 0x o &h) que lo diferencie como número hexadecimal. Esto produce un error de 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 s. El parámetro provider puede cualquiera de los siguientes:

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

  • Un objeto NumberFormatInfo que proporciona información sobre el formato numérico. (Su implementación de GetFormat se devuelve por sí misma.)

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

Si provider es null, se utiliza NumberFormatInfo de la actual referencia cultural.

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


using System;
using System.Globalization;

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

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

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

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

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

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

      numericString = "9112E-01";
      CallTryParse(numericString, styles);

      numericString = "312E01";
      CallTryParse(numericString, styles); 

      numericString = "FFC86DA1";
      CallTryParse(numericString, NumberStyles.HexNumber);

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

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      ulong number;
      bool result = UInt64.TryParse(stringToConvert, styles, 
                                   CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number);
      else
         Console.WriteLine("Attempted conversion of '{0}' failed.", 
                           Convert.ToString(stringToConvert));
   }
}
// The example displays the following output:
//       Converted '2106034' to 2106034.
//       Attempted conversion of '-10603' failed.
//       Converted '29103674.00' to 29103674.
//       Attempted conversion of '10345.72' failed.
//       Converted '41792210E-01' to 4179221.
//       Attempted conversion of '9112E-01' failed.
//       Converted '312E01' to 3120.
//       Converted 'FFC86DA1' to 4291325345.
//       Attempted conversion of '0x8F8C' failed.


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Mostrar: