UInt64.TryParse Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Tenta converter a representação de cadeia de caracteres de um número em seu equivalente inteiro sem sinal de 64 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
Sobrecargas
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt64) |
Tenta analisar um intervalo de caracteres UTF-8 em um valor. |
TryParse(ReadOnlySpan<Char>, UInt64) |
Tenta converter a representação de intervalo de um número em seu equivalente inteiro sem sinal de 64 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(String, UInt64) |
Tenta converter a representação de cadeia de caracteres de um número em seu equivalente inteiro sem sinal de 64 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt64) |
Tenta analisar um intervalo de caracteres em um valor. |
TryParse(String, IFormatProvider, UInt64) |
Tenta analisar uma cadeia de caracteres em um valor. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt64) |
Tenta analisar um intervalo de caracteres UTF-8 em um valor. |
TryParse(ReadOnlySpan<Byte>, UInt64) |
Tenta converter um intervalo de caracteres UTF-8 que contém a representação de cadeia de caracteres de um número em seu inteiro sem sinal de 64 bits equivalente. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt64) |
Tenta converter a representação de intervalo de um número em um formato específico de cultura e estilo especificado para seu inteiro sem sinal de 64 bits equivalente. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(String, NumberStyles, IFormatProvider, UInt64) |
Tenta converter a representação de cadeia de caracteres de um número em um formato específico de cultura e estilo especificado para seu inteiro sem sinal de 64 bits equivalente. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Tenta analisar um intervalo de caracteres UTF-8 em um valor.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt64 % result) = IUtf8SpanParsable<System::UInt64>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out ulong result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * uint64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As ULong) As Boolean
Parâmetros
- utf8Text
- ReadOnlySpan<Byte>
O intervalo de caracteres UTF-8 a serem analisados.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre utf8Text
.
- result
- UInt64
No retorno, contém o resultado da análise bem-sucedida de utf8Text
ou de um valor indefinido sobre a falha.
Retornos
true
se utf8Text
foi analisado com êxito; caso contrário, false
.
Aplica-se a
TryParse(ReadOnlySpan<Char>, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Importante
Esta API não está em conformidade com CLS.
Tenta converter a representação de intervalo de um número em seu equivalente inteiro sem sinal de 64 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::UInt64 % result);
public static bool TryParse (ReadOnlySpan<char> s, out ulong result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, out ulong result);
static member TryParse : ReadOnlySpan<char> * uint64 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * uint64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As ULong) As Boolean
Parâmetros
- s
- ReadOnlySpan<Char>
Um intervalo que contém os caracteres que representam o número a ser convertido.
- result
- UInt64
Quando esse método é retornado, contém o valor inteiro sem sinal de 64 bits equivalente ao número contido em s
, se a conversão foi bem-sucedida ou zero se a conversão falhou. A conversão falhará se o parâmetro s
for null
ou Empty, não for do formato correto ou representar um número menor que UInt64.MinValue ou maior que UInt64.MaxValue. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido em result
será substituído.
Retornos
true
se s
foi convertido com êxito; caso contrário, false
.
- Atributos
Aplica-se a
TryParse(String, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Importante
Esta API não está em conformidade com CLS.
- Alternativa em conformidade com CLS
- System.Decimal.Parse(String)
Tenta converter a representação de cadeia de caracteres de um número em seu equivalente inteiro sem sinal de 64 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::UInt64 % result);
[System.CLSCompliant(false)]
public static bool TryParse (string s, out ulong result);
public static bool TryParse (string? s, out ulong result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, out ulong result);
[<System.CLSCompliant(false)>]
static member TryParse : string * uint64 -> bool
static member TryParse : string * uint64 -> bool
Public Shared Function TryParse (s As String, ByRef result As ULong) As Boolean
Parâmetros
- s
- String
Uma cadeia de caracteres que representa o número a ser convertido.
- result
- UInt64
Quando esse método é retornado, contém o valor inteiro sem sinal de 64 bits equivalente ao número contido em s
, se a conversão foi bem-sucedida ou zero se a conversão falhou. A conversão falhará se o parâmetro s
for null
ou Empty, não for do formato correto ou representar um número menor que UInt64.MinValue ou maior que UInt64.MaxValue. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido em result
será substituído.
Retornos
true
se s
foi convertido com êxito; caso contrário, false
.
- Atributos
Exemplos
O exemplo a seguir chama o método TryParse(String, UInt64) uma vez para cada elemento em uma matriz de cadeia de caracteres.
string[] numericStrings = { "1293.8", "+1671.7", "28347.",
" 33113684 ", "(0)", "-0", "+1293617",
"18-", "119870", "31,024", " 3127094 ",
"00700000" };
ulong number;
foreach (string numericString in numericStrings)
{
if (UInt64.TryParse(numericString, out number))
Console.WriteLine("Converted '{0}' to {1}.", numericString, number);
else
Console.WriteLine("Cannot convert '{0}' to a UInt64.", numericString);
}
// The example displays the following output:
// Cannot convert '1293.8' to a UInt64.
// Cannot convert '+1671.7' to a UInt64.
// Cannot convert '28347.' to a UInt64.
// Converted ' 33113684 ' to 33113684.
// Cannot convert '(0)' to a UInt64.
// Converted '-0' to 0.
// Converted '+1293617' to 1293617.
// Cannot convert '18-' to a UInt64.
// Converted '119870' to 119870.
// Cannot convert '31,024' to a UInt64.
// Converted ' 3127094 ' to 3127094.
// Converted '0070000' to 70000.
open System
let numericStrings =
[| "1293.8"; "+1671.7"; "28347."
" 33113684 "; "(0)"; "-0"; "+1293617"
"18-"; "119870"; "31,024"; " 3127094 "
"00700000" |]
for numericString in numericStrings do
match UInt64.TryParse numericString with
| true, number ->
printfn $"Converted '{numericString}' to {number}."
| _ ->
printfn $"Cannot convert '{numericString}' to a UInt64."
// The example displays the following output:
// Cannot convert '1293.8' to a UInt64.
// Cannot convert '+1671.7' to a UInt64.
// Cannot convert '28347.' to a UInt64.
// Converted ' 33113684 ' to 33113684.
// Cannot convert '(0)' to a UInt64.
// Converted '-0' to 0.
// Converted '+1293617' to 1293617.
// Cannot convert '18-' to a UInt64.
// Converted '119870' to 119870.
// Cannot convert '31,024' to a UInt64.
// Converted ' 3127094 ' to 3127094.
// Converted '0070000' to 70000.
Dim numericStrings() As String = {"1293.8", "+1671.7", "28347.", _
" 33113684 ", "(0)", "-0", "+1293617", _
"18-", "119870", "31,024", " 3127094 ", _
"0070000" }
Dim number As ULong
For Each numericString As String In numericStrings
If UInt64.TryParse(numericString, number) Then
Console.WriteLine("Converted '{0}' to {1}.", numericString, number)
Else
Console.WriteLine("Cannot convert '{0}' to a UInt64.", numericString)
End If
Next
' The example displays the following output:
' Cannot convert '1293.8' to a UInt64.
' Cannot convert '+1671.7' to a UInt64.
' Cannot convert '28347.' to a UInt64.
' Converted ' 33113684 ' to 33113684.
' Cannot convert '(0)' to a UInt64.
' Converted '-0' to 0.
' Converted '+1293617' to 1293617.
' Cannot convert '18-' to a UInt64.
' Converted '119870' to 119870.
' Cannot convert '31,024' to a UInt64.
' Converted ' 3127094 ' to 3127094.
' Converted '0070000' to 70000.
Comentários
O método TryParse(String, UInt64) é como o método Parse(String), exceto que ele não gera uma exceção se a conversão falhar. Esse método elimina a necessidade de usar o tratamento de exceções para testar um FormatException se s
for inválido e não puder ser analisado com êxito.
O parâmetro s
deve ser a representação de cadeia de caracteres de um número decimal no seguinte formulário:
[ws] [assinar]dígitos[ws]
Elementos em colchetes ([ e ]) são opcionais. A tabela a seguir descreve cada elemento.
Elemento | Descrição |
---|---|
ws | Espaço em branco opcional. |
assinar | Um sinal opcional. Caracteres de sinal válidos são determinados pelas propriedades NumberFormatInfo.NegativeSign e NumberFormatInfo.PositiveSign da cultura atual. |
dígitos | Uma sequência de dígitos decimais variando de 0 a 9. |
O parâmetro s
é interpretado usando o estilo NumberStyles.Integer. Além dos dígitos decimais, somente espaços à esquerda e à direita com um sinal à esquerda são permitidos. Para definir explicitamente os elementos de estilo com as informações de formatação específicas da cultura que podem estar presentes em s
, chame o método TryParse(String, NumberStyles, IFormatProvider, UInt64).
Nota
A cadeia de caracteres especificada pelo parâmetro s
não pode conter separadores de grupo ou separador decimal e não pode ter uma parte fracionária.
O parâmetro s
é analisado usando as informações de formatação em um objeto NumberFormatInfo inicializado para a cultura atual do sistema. Para obter mais informações, consulte NumberFormatInfo.CurrentInfo.
Essa sobrecarga interpreta todos os dígitos no parâmetro s
como dígitos decimais. Para analisar a representação de cadeia de caracteres de um número hexadecimal, chame a sobrecarga de TryParse(String, NumberStyles, IFormatProvider, UInt64).
Confira também
- Parse
- ToString
- analisar cadeias de caracteres numéricas no .NET
- Exemplo de : Utilitário de Formatação do WinForms do .NET Core (C#)
- Exemplo de : Utilitário de Formatação winforms do .NET Core (Visual Basic)
Aplica-se a
TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Tenta analisar um intervalo de caracteres em um valor.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt64 % result) = ISpanParsable<System::UInt64>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out ulong result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * uint64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As ULong) As Boolean
Parâmetros
- s
- ReadOnlySpan<Char>
O intervalo de caracteres a serem analisados.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre s
.
- result
- UInt64
Quando esse método é retornado, contém o resultado da análise bem-sucedida de s
ou um valor indefinido sobre a falha.
Retornos
true
se s
foi analisado com êxito; caso contrário, false
.
Aplica-se a
TryParse(String, IFormatProvider, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Tenta analisar uma cadeia de caracteres em um valor.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt64 % result) = IParsable<System::UInt64>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out ulong result);
static member TryParse : string * IFormatProvider * uint64 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As ULong) As Boolean
Parâmetros
- s
- String
A cadeia de caracteres a ser analisada.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre s
.
- result
- UInt64
Quando esse método é retornado, contém o resultado da análise bem-sucedida de s
ou de um valor indefinido sobre a falha.
Retornos
true
se s
foi analisado com êxito; caso contrário, false
.
Aplica-se a
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Tenta analisar um intervalo de caracteres UTF-8 em um valor.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt64 % result) = System::Numerics::INumberBase<System::UInt64>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out ulong result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * uint64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As ULong) As Boolean
Parâmetros
- utf8Text
- ReadOnlySpan<Byte>
O intervalo de caracteres UTF-8 a serem analisados.
- style
- NumberStyles
Uma combinação bit a bit de estilos numéricos que podem estar presentes em utf8Text
.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre utf8Text
.
- result
- UInt64
No retorno, contém o resultado da análise bem-sucedida de utf8Text
ou de um valor indefinido sobre a falha.
Retornos
true
se utf8Text
foi analisado com êxito; caso contrário, false
.
Aplica-se a
TryParse(ReadOnlySpan<Byte>, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Tenta converter um intervalo de caracteres UTF-8 que contém a representação de cadeia de caracteres de um número em seu inteiro sem sinal de 64 bits equivalente.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::UInt64 % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out ulong result);
static member TryParse : ReadOnlySpan<byte> * uint64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As ULong) As Boolean
Parâmetros
- utf8Text
- ReadOnlySpan<Byte>
Um intervalo que contém os caracteres UTF-8 que representam o número a ser convertido.
- result
- UInt64
Quando esse método é retornado, contém o valor inteiro sem sinal de 64 bits equivalente ao número contido em utf8Text
se a conversão foi bem-sucedida ou zero se a conversão falhou. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido no resultado será substituído.
Retornos
true
se utf8Text
foi convertido com êxito; caso contrário, false
.
Aplica-se a
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Importante
Esta API não está em conformidade com CLS.
Tenta converter a representação de intervalo de um número em um formato específico de cultura e estilo especificado para seu inteiro sem sinal de 64 bits equivalente. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt64 % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt64 % result) = System::Numerics::INumberBase<System::UInt64>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ulong result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out ulong result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ulong result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint64 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As ULong) As Boolean
Parâmetros
- s
- ReadOnlySpan<Char>
Um intervalo que contém os caracteres que representam o número a ser convertido. O intervalo é interpretado usando o estilo especificado pelo parâmetro style
.
- style
- NumberStyles
Uma combinação bit a bit de valores de enumeração que indica o formato permitido de s
. Um valor típico a ser especificado é Integer.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre s
.
- result
- UInt64
Quando esse método retorna, contém o valor inteiro sem sinal de 64 bits equivalente ao número contido em s
, se a conversão foi bem-sucedida ou zero se a conversão falhou. A conversão falhará se o parâmetro s
for null
ou Empty, não estiver em um formato compatível com style
ou representar um número menor que UInt64.MinValue ou maior que UInt64.MaxValue. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido em result
será substituído.
Retornos
true
se s
foi convertido com êxito; caso contrário, false
.
- Atributos
Aplica-se a
TryParse(String, NumberStyles, IFormatProvider, UInt64)
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
- Origem:
- UInt64.cs
Importante
Esta API não está em conformidade com CLS.
- Alternativa em conformidade com CLS
- System.Decimal.Parse(String)
Tenta converter a representação de cadeia de caracteres de um número em um formato específico de cultura e estilo especificado para seu inteiro sem sinal de 64 bits equivalente. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt64 % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt64 % result) = System::Numerics::INumberBase<System::UInt64>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out ulong result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ulong result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ulong result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint64 -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint64 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As ULong) As Boolean
Parâmetros
- s
- String
Uma cadeia de caracteres que representa o número a ser convertido. A cadeia de caracteres é interpretada usando o estilo especificado pelo parâmetro style
.
- style
- NumberStyles
Uma combinação bit a bit de valores de enumeração que indica o formato permitido de s
. Um valor típico a ser especificado é Integer.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre s
.
- result
- UInt64
Quando esse método retorna, contém o valor inteiro sem sinal de 64 bits equivalente ao número contido em s
, se a conversão foi bem-sucedida ou zero se a conversão falhou. A conversão falhará se o parâmetro s
for null
ou Empty, não estiver em um formato compatível com style
ou representar um número menor que UInt64.MinValue ou maior que UInt64.MaxValue. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido em result
será substituído.
Retornos
true
se s
foi convertido com êxito; caso contrário, false
.
- Atributos
Exceções
style
não é um valor NumberStyles.
-ou-
style
não é uma combinação de valores AllowHexSpecifier e HexNumber.
Exemplos
O exemplo a seguir chama o método TryParse(String, NumberStyles, IFormatProvider, UInt64) com várias cadeias de caracteres diferentes e valores NumberStyles.
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 '{stringToConvert}' to {number}.");
else
Console.WriteLine($"Attempted conversion of '{stringToConvert}' failed.");
}
}
// 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.
open System
open System.Globalization
let callTryParse (stringToConvert: string) (styles: NumberStyles) =
match UInt64.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
do
let numericString = "2106034"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-10603"
let styles = NumberStyles.None
callTryParse numericString styles
let numericString = "29103674.00"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "10345.72"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "41792210E-01"
let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
callTryParse numericString styles
let numericString = "9112E-01"
callTryParse numericString styles
let numericString = "312E01"
callTryParse numericString styles
let numericString = "FFC86DA1"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x8F8C"
callTryParse numericString NumberStyles.HexNumber
// 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.
Imports System.Globalization
Module Example
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "2106034"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-10603"
styles = NumberStyles.None
CallTryParse(numericString, styles)
numericString = "29103674.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10345.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "41792210E-01"
styles = NumberStyles.Integer Or 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)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As ULong
Dim result As Boolean = UInt64.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 '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.
Comentários
O método TryParse(String, NumberStyles, IFormatProvider, UInt64) é como o método Parse(String, NumberStyles, IFormatProvider), exceto que ele não gera uma exceção se a conversão falhar. Esse método elimina a necessidade de usar o tratamento de exceções para testar um FormatException se s
for inválido e não puder ser analisado com êxito.
O parâmetro style
define os elementos de estilo (como espaço em branco ou um sinal positivo ou negativo) que são permitidos no parâmetro s
para que a operação de análise tenha êxito. Deve ser uma combinação de sinalizadores de bits da enumeração NumberStyles. Dependendo do valor de style
, o parâmetro s
pode incluir os seguintes elementos:
[
Itens em colchetes ([ e ]) são opcionais. Ou, se o parâmetro style
incluir NumberStyles.AllowHexSpecifier, o parâmetro s
poderá incluir os seguintes elementos:
[ws]hexdigits[ws]
A tabela a seguir descreve cada elemento.
Elemento | Descrição |
---|---|
ws | Espaço em branco opcional. O espaço em branco poderá aparecer no início de s se style incluir o sinalizador NumberStyles.AllowLeadingWhite ou no final do s se style incluir o sinalizador NumberStyles.AllowTrailingWhite. |
$ | Um símbolo de moeda específico à cultura. Sua posição na cadeia de caracteres é definida pela propriedade CurrencyPositivePattern do objeto NumberFormatInfo retornado pelo método GetFormat do parâmetro provider . O símbolo de moeda poderá aparecer em s se style incluir o sinalizador NumberStyles.AllowCurrencySymbol. |
assinar | Um sinal opcional. O sinal poderá aparecer no início do s se style incluir o sinalizador NumberStyles.AllowLeadingSign e ele poderá aparecer no final do s se style incluir o sinalizador de NumberStyles.AllowTrailingSign. Parênteses podem ser usados em s para indicar um valor negativo se style incluir o sinalizador NumberStyles.AllowParentheses. No entanto, se o sinal negativo estiver presente, s só poderá representar o valor zero para que a operação de análise seja bem-sucedida. |
dígitos | Uma sequência de dígitos de 0 a 9. |
, | Um separador de grupo específico à cultura. O separador de grupo da cultura especificada por provider poderá aparecer em s se style incluir o sinalizador NumberStyles.AllowThousands. |
. | Um símbolo de ponto decimal específico da cultura. O símbolo de ponto decimal da cultura especificada por provider poderá aparecer em s se style incluir o sinalizador NumberStyles.AllowDecimalPoint. |
fractional_digits | Uma ou mais ocorrências do dígito 0. Dígitos fracionários só poderão aparecer em s se style incluir o sinalizador NumberStyles.AllowDecimalPoint. |
E | O caractere "e" ou "E", que indica que o valor é representado na notação exponencial (científica). O parâmetro s pode representar um número na notação exponencial se style incluir o sinalizador NumberStyles.AllowExponent. |
exponential_digits | Uma sequência de dígitos de 0 a 9. O parâmetro s pode representar um número na notação exponencial se style incluir o sinalizador NumberStyles.AllowExponent. |
hexdigits | Uma sequência de dígitos hexadecimal de 0 a f ou 0 a F. |
Nota
Todos os caracteres NUL de terminação (U+0000) em s
são ignorados pela operação de análise, independentemente do valor do argumento style
.
Uma cadeia de caracteres somente com dígitos decimais (que corresponde ao sinalizador NumberStyles.None) sempre é analisada com êxito. A maioria dos elementos de controle de membros NumberStyles restantes que podem estar presentes, mas não precisam estar presentes, nesta cadeia de caracteres de entrada. A tabela a seguir indica como membros NumberStyles individuais afetam os elementos que podem estar presentes no s
.
Valores de NumberStyles não compostos |
Elementos permitidos em valor além de dígitos |
---|---|
None | Somente dígitos decimais. |
AllowDecimalPoint | O ponto decimal (.) e fractional_digits elementos. No entanto, fractional_digits deve consistir em apenas um ou mais 0 dígitos ou o método retorna false . |
AllowExponent | O caractere "e" ou "E", que indica notação exponencial, juntamente com exponential_digits. Se s representar um número na notação exponencial, ele não poderá ter um componente fracionário diferente de zero. |
AllowLeadingWhite | O elemento ws no início de s . |
AllowTrailingWhite | O elemento ws no final de s . |
AllowLeadingSign | O elemento de sinal de |
AllowTrailingSign | O elemento de sinal |
AllowParentheses | O sinal elemento na forma de parênteses que contém um valor numérico zero. |
AllowThousands | O elemento separador de grupo (,). |
AllowCurrencySymbol | O elemento currency ($). |
Currency | Todos os elementos. No entanto, s não pode representar um número hexadecimal ou um número na notação exponencial. |
Float | O elemento ws no início ou no final de s , de sinal no início do s e no símbolo decimal point (.). O parâmetro s também pode usar notação exponencial. |
Number | Os elementos ws, sign, separador de grupo (,) e decimal point (.). |
Any | Todos os elementos. No entanto, s não pode representar um número hexadecimal. |
Se o sinalizador NumberStyles.AllowHexSpecifier for usado, s
deverá ser um valor hexadecimal. Os caracteres hexadecimal válidos são 0-9, A-F e a-f. Não há suporte para um prefixo como "0x" e faz com que a operação de análise falhe. Os únicos outros sinalizadores que podem estar presentes em style
são NumberStyles.AllowLeadingWhite e NumberStyles.AllowTrailingWhite. (A enumeração NumberStyles tem um estilo composto, HexNumber, que inclui sinalizadores de espaço em branco.)
Nota
Se s
for a representação de cadeia de caracteres de um número hexadecimal, ela não poderá ser precedida por qualquer decoração (como 0x
ou &h
) que a diferencie como um número hexadecimal. Isso faz com que a conversão falhe.
O parâmetro provider
é uma implementação IFormatProvider. Seu método GetFormat retorna um objeto NumberFormatInfo que fornece informações específicas da cultura sobre o formato de s
. O parâmetro provider
pode ser qualquer um dos seguintes:
Um objeto CultureInfo que representa a cultura que fornece informações de formatação. Seu método GetFormat retorna o objeto NumberFormatInfo que fornece informações de formatação numérica para essa cultura.
Um objeto NumberFormatInfo que fornece informações de formatação numérica. (Sua implementação de GetFormat apenas retorna a si mesma.)
Um objeto personalizado que implementa IFormatProvider. Seu método GetFormat cria uma instância e retorna o objeto NumberFormatInfo que fornece informações de formatação.
Se provider
for null
, o objeto NumberFormatInfo da cultura atual será usado.