UInt32.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 32 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
Sobrecargas
| Nome | Description |
|---|---|
| TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32) |
Tenta analisar um intervalo de caracteres UTF-8 em um valor. |
| TryParse(ReadOnlySpan<Char>, UInt32) |
Tenta converter a representação de intervalo de um número em seu equivalente inteiro sem sinal de 32 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
| TryParse(String, UInt32) |
Tenta converter a representação de cadeia de caracteres de um número em seu equivalente inteiro sem sinal de 32 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32) |
Tenta analisar um intervalo de caracteres em um valor. |
| TryParse(String, IFormatProvider, UInt32) |
Tenta analisar uma cadeia de caracteres em um valor. |
| TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt32) |
Tenta analisar um intervalo de caracteres UTF-8 em um valor. |
| TryParse(ReadOnlySpan<Byte>, UInt32) |
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 32 bits equivalente. |
| TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt32) |
Tenta converter a representação de intervalo de um número em um formato específico de cultura e estilo especificado em seu equivalente inteiro sem sinal de 32 bits. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
| TryParse(String, NumberStyles, IFormatProvider, UInt32) |
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 32 bits equivalente. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.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::UInt32 % result) = IUtf8SpanParsable<System::UInt32>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out uint result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As UInteger) 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
- UInt32
No retorno, contém o resultado da análise utf8Text com êxito 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>, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.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 32 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::UInt32 % result);
public static bool TryParse(ReadOnlySpan<char> s, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, out uint result);
static member TryParse : ReadOnlySpan<char> * uint32 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * uint32 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As UInteger) As Boolean
Parâmetros
- s
- ReadOnlySpan<Char>
Um intervalo que contém os caracteres que representam o número a ser convertido.
- result
- UInt32
Quando esse método é retornado, contém o valor inteiro sem sinal de 32 bits equivalente ao número contido s, se a conversão foi bem-sucedida ou zero se a conversão falhou. A conversão falhará se o s parâmetro for null ou Emptynão for do formato correto ou representar um número menor que UInt32.MinValue ou maior que UInt32.MaxValue. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido result será substituído.
Retornos
true se s tiver sido convertido com êxito; caso contrário, false.
- Atributos
Aplica-se a
TryParse(String, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
Importante
Esta API não está em conformidade com CLS.
- Alternativa em conformidade com CLS
- System.Int64.TryParse(String, Int64)
Tenta converter a representação de cadeia de caracteres de um número em seu equivalente inteiro sem sinal de 32 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::UInt32 % result);
[System.CLSCompliant(false)]
public static bool TryParse(string s, out uint result);
public static bool TryParse(string? s, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse(string? s, out uint result);
[<System.CLSCompliant(false)>]
static member TryParse : string * uint32 -> bool
static member TryParse : string * uint32 -> bool
Public Shared Function TryParse (s As String, ByRef result As UInteger) As Boolean
Parâmetros
- s
- String
Uma cadeia de caracteres que representa o número a ser convertido.
- result
- UInt32
Quando esse método é retornado, contém o valor inteiro sem sinal de 32 bits equivalente ao número contido s, se a conversão foi bem-sucedida ou zero se a conversão falhou. A conversão falhará se o s parâmetro for null ou Emptynão for do formato correto ou representar um número menor que UInt32.MinValue ou maior que UInt32.MaxValue. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido result será substituído.
Retornos
true se s tiver sido convertido com êxito; caso contrário, false.
- Atributos
Exemplos
O exemplo a seguir chama o TryParse(String, UInt32) método uma vez para cada elemento em uma matriz de cadeia de caracteres.
string[] numericStrings = { "1293.8", "+1671.7", "28347.",
" 33113684 ", "(0)", "-0", "-1",
"+1293617", "18-", "119870", "31,024",
" 3127094 ", "00700000" };
uint number;
foreach (string numericString in numericStrings)
{
if (UInt32.TryParse(numericString, out number))
Console.WriteLine("Converted '{0}' to {1}.", numericString, number);
else
Console.WriteLine("Cannot convert '{0}' to a UInt32.", numericString);
}
// The example displays the following output:
// Cannot convert '1293.8' to a UInt32.
// Cannot convert '+1671.7' to a UInt32.
// Cannot convert '28347.' to a UInt32.
// Converted ' 33113684 ' to 33113684.
// Cannot convert '(0)' to a UInt32.
// Converted '-0' to 0.
// Cannot convert '-1' to a UInt32.
// Converted '+1293617' to 1293617.
// Cannot convert '18-' to a UInt32.
// Converted '119870' to 119870.
// Cannot convert '31,024' to a UInt32.
// Converted ' 3127094 ' to 3127094.
// Converted '0070000' to 70000.
let numericStrings =
[| "1293.8"; "+1671.7"; "28347."
" 33113684 "; "(0)"; "-0"; "-1"
"+1293617"; "18-"; "119870"; "31,024"
" 3127094 "; "00700000" |]
for numericString in numericStrings do
match UInt32.TryParse numericString with
| true, number ->
printfn $"Converted '{numericString}' to {number}."
| _ ->
printfn $"Cannot convert '{numericString}' to a UInt32."
// The example displays the following output:
// Cannot convert '1293.8' to a UInt32.
// Cannot convert '+1671.7' to a UInt32.
// Cannot convert '28347.' to a UInt32.
// Converted ' 33113684 ' to 33113684.
// Cannot convert '(0)' to a UInt32.
// Converted '-0' to 0.
// Cannot convert '-1' to a UInt32.
// Converted '+1293617' to 1293617.
// Cannot convert '18-' to a UInt32.
// Converted '119870' to 119870.
// Cannot convert '31,024' to a UInt32.
// Converted ' 3127094 ' to 3127094.
// Converted '0070000' to 70000.
Dim numericStrings() As String = {"1293.8", "+1671.7", "28347.",
" 33113684 ", "(0)", "-0", "-1",
"+1293617", "18-", "119870",
"31,024", " 3127094 ", "0070000" }
Dim number As UInteger
For Each numericString As String In numericStrings
If UInt32.TryParse(numericString, number) Then
Console.WriteLine("Converted '{0}' to {1}.", numericString, number)
Else
Console.WriteLine("Cannot convert '{0}' to a UInt32.", numericString)
End If
Next
' The example displays the following output:
' Cannot convert '1293.8' to a UInt32.
' Cannot convert '+1671.7' to a UInt32.
' Cannot convert '28347.' to a UInt32.
' Converted ' 33113684 ' to 33113684.
' Cannot convert '(0)' to a UInt32.
' Converted '-0' to 0.
' Cannot convert '-1' to a UInt32.
' Converted '+1293617' to 1293617.
' Cannot convert '18-' to a UInt32.
' Converted '119870' to 119870.
' Cannot convert '31,024' to a UInt32.
' Converted ' 3127094 ' to 3127094.
' Converted '0070000' to 70000.
Comentários
O TryParse método é como o Parse método, 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ção para testar um FormatException se s é inválido e não pode ser analisado com êxito.
O s parâmetro deve ser a representação de cadeia de caracteres de um número decimal no seguinte formulário:
[ws][sign]digits[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 e NumberFormatInfo.NegativeSign pela NumberFormatInfo.PositiveSign cultura atual. |
| Dígitos | Uma sequência de dígitos decimais variando de 0 a 9. |
O s parâmetro é interpretado usando o NumberStyles.Integer estilo. 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 s, chame o TryParse(String, NumberStyles, IFormatProvider, UInt32) método.
Nota
A cadeia de caracteres especificada pelo s parâmetro não pode conter separadores de grupo ou separador decimal e não pode ter uma parte fracionária.
O s parâmetro é analisado usando as informações de formatação em um NumberFormatInfo objeto para a cultura atual do sistema. Para obter mais informações, consulte NumberFormatInfo.CurrentInfo.
Essa sobrecarga interpreta todos os dígitos no s parâmetro como dígitos decimais. Para analisar a representação de cadeia de caracteres de um número hexadecimal, chame a TryParse(String, NumberStyles, IFormatProvider, UInt32) sobrecarga.
Confira também
- Parse(String)
- ToString()
- Analisando 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, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
Tenta analisar um intervalo de caracteres em um valor.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = ISpanParsable<System::UInt32>::TryParse;
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out uint result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As UInteger) 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
- UInt32
Quando esse método é retornado, contém o resultado da análise scom êxito 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, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
Tenta analisar uma cadeia de caracteres em um valor.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = IParsable<System::UInt32>::TryParse;
public static bool TryParse(string? s, IFormatProvider? provider, out uint result);
static member TryParse : string * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As UInteger) 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
- UInt32
Quando esse método é retornado, contém o resultado da análise s com êxito 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, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.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::UInt32 % result) = System::Numerics::INumberBase<System::UInt32>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As UInteger) 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
- UInt32
No retorno, contém o resultado da análise utf8Text com êxito 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>, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.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 32 bits equivalente.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::UInt32 % result);
public static bool TryParse(ReadOnlySpan<byte> utf8Text, out uint result);
static member TryParse : ReadOnlySpan<byte> * uint32 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As UInteger) 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
- UInt32
Quando esse método é retornado, contém o valor inteiro sem sinal de 32 bits equivalente ao número contido se utf8Text 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 tiver sido convertido com êxito; caso contrário, false.
Aplica-se a
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.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 em seu equivalente inteiro sem sinal de 32 bits. 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::UInt32 % result) = System::Numerics::INumberBase<System::UInt32>::TryParse;
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As UInteger) 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 style parâmetro.
- 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
- UInt32
Quando esse método é retornado, contém o valor inteiro sem sinal de 32 bits equivalente ao número contido s, se a conversão foi bem-sucedida ou zero se a conversão falhou. A conversão falhará se o s parâmetro estiver null ou Emptynão estiver em um formato compatível ou stylerepresentar um número menor que UInt32.MinValue ou maior que UInt32.MaxValue. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido result será substituído.
Retornos
true se s tiver sido convertido com êxito; caso contrário, false.
- Atributos
Aplica-se a
TryParse(String, NumberStyles, IFormatProvider, UInt32)
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
- Origem:
- UInt32.cs
Importante
Esta API não está em conformidade com CLS.
- Alternativa em conformidade com CLS
- System.Int64.TryParse(String, Int64)
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 32 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::UInt32 % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = System::Numerics::INumberBase<System::UInt32>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out uint result);
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As UInteger) 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 style parâmetro.
- 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
- UInt32
Quando esse método é retornado, contém o valor inteiro sem sinal de 32 bits equivalente ao número contido s, se a conversão foi bem-sucedida ou zero se a conversão falhou. A conversão falhará se o s parâmetro estiver null ou Emptynão estiver em um formato compatível ou stylerepresentar um número menor que UInt32.MinValue ou maior que UInt32.MaxValue. Esse parâmetro é passado sem inicialização; qualquer valor originalmente fornecido result será substituído.
Retornos
true se s tiver sido convertido com êxito; caso contrário, false.
- Atributos
Exceções
style não é um NumberStyles valor.
-ou-
style não é uma combinação de AllowHexSpecifier valores e valores HexNumber .
Exemplos
O exemplo a seguir chama o TryParse(String, NumberStyles, IFormatProvider, UInt32) método com várias cadeias de caracteres e NumberStyles valores 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)
{
uint number;
bool result = UInt32.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 UInt32.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 UInteger
Dim result As Boolean = UInt32.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 TryParse(String, NumberStyles, IFormatProvider, UInt32) método é como o Parse(String, NumberStyles, IFormatProvider) método, 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 é inválido e não pode ser analisado com êxito.
O style parâmetro define os elementos de estilo (como espaço em branco ou um sinal positivo ou negativo) que são permitidos no s parâmetro para que a operação de análise seja bem-sucedida. Deve ser uma combinação de sinalizadores de bits da NumberStyles enumeração. Dependendo do valor de style, o s parâmetro pode incluir os seguintes elementos:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
Itens em colchetes ([ e ]) são opcionais. Ou, se o style parâmetro incluir NumberStyles.AllowHexSpecifier, o s parâmetro 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 pode aparecer no início de s se incluir o style sinalizador ou no final de NumberStyles.AllowLeadingWhite se s incluir o style sinalizador.NumberStyles.AllowTrailingWhite |
| $ | Um símbolo de moeda específico à cultura. Sua posição na cadeia de caracteres é definida pela CurrencyPositivePattern propriedade do NumberFormatInfo objeto retornado pelo GetFormat método do provider parâmetro. O símbolo de moeda poderá aparecer s se style incluir o NumberStyles.AllowCurrencySymbol sinalizador. |
| assinar | Um sinal opcional. O sinal pode aparecer no início de s se incluir o style sinalizador e pode aparecer no final de NumberStyles.AllowLeadingSign se s incluir o styleNumberStyles.AllowTrailingSign sinalizador. Parênteses podem ser usados s para indicar um valor negativo se style incluir o NumberStyles.AllowParentheses sinalizador. 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 pode provider aparecer se sstyle incluir o NumberStyles.AllowThousands sinalizador. |
| . | Um símbolo de ponto decimal específico da cultura. O símbolo de ponto decimal da cultura especificada poderá provider aparecer se sstyle incluir o NumberStyles.AllowDecimalPoint sinalizador. |
| Fractional_digits | Uma ou mais ocorrências do dígito 0. Dígitos fracionários só poderão aparecer s se style incluir o NumberStyles.AllowDecimalPoint sinalizador. |
| E | O caractere "e" ou "E", que indica que o valor é representado na notação exponencial (científica). O s parâmetro pode representar um número na notação exponencial se style incluir o NumberStyles.AllowExponent sinalizador. |
| exponential_digits | Uma sequência de dígitos de 0 a 9. O s parâmetro pode representar um número na notação exponencial se style incluir o NumberStyles.AllowExponent sinalizador. |
| hexdigits | Uma sequência de dígitos hexadecimal de 0 a f ou 0 a F. |
Nota
Todos os caracteres s NUL de terminação (U+0000) são ignorados pela operação de análise, independentemente do valor do style argumento.
Uma cadeia de caracteres somente com dígitos decimais (que corresponde ao NumberStyles.None sinalizador) sempre é analisada com êxito. A maioria dos elementos de controle de membros restantes NumberStyles que podem estar presentes, mas não precisam estar presentes, nesta cadeia de caracteres de entrada. A tabela a seguir indica como os membros individuais NumberStyles afetam os elementos que podem estar presentes em s.
Valores não compostos NumberStyles |
Elementos permitidos em valor além de dígitos |
|---|---|
| None | Somente dígitos decimais. |
| AllowDecimalPoint | O ponto decimal (.) e os elementos fractional_digits. 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 sign antes dos dígitos. |
| AllowTrailingSign | O elemento sign após dígitos. |
| AllowParentheses | O elemento sign 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 é possível representar um número hexadecimal ou um número em notação exponencial. |
| Float | O elemento ws no início ou no final de s, assinar no início e so símbolo de ponto decimal (.). O s parâmetro também pode usar notação exponencial. |
| Number | Os elementos ws, sign, separador de grupo (,) e ponto decimal (.). |
| Any | Todos os elementos. No entanto, s não é possível representar um número hexadecimal. |
Se o NumberStyles.AllowHexSpecifier sinalizador for usado, s deverá ser um valor hexadecimal. Os únicos outros sinalizadores que podem estar presentes style são NumberStyles.AllowLeadingWhite e NumberStyles.AllowTrailingWhite. (A NumberStyles enumeração tem um estilo composto, HexNumberque 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 provider parâmetro é uma implementação IFormatProvider . Seu GetFormat método retorna um NumberFormatInfo objeto que fornece informações específicas da cultura sobre o formato de s. O provider parâmetro pode ser qualquer um dos seguintes:
Um CultureInfo objeto que representa a cultura que fornece informações de formatação. Seu GetFormat método retorna o NumberFormatInfo objeto que fornece informações de formatação numérica para essa cultura.
Um NumberFormatInfo objeto 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 GetFormat método cria uma instância e retorna o NumberFormatInfo objeto que fornece informações de formatação.
Se provider for null, o NumberFormatInfo objeto para a cultura atual será usado.