UInt32.TryParse Metoda

Definice

Pokusí se převést řetězcovou reprezentaci čísla na 32bitové celočíselné ekvivalenty. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

Přetížení

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32)

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

TryParse(ReadOnlySpan<Char>, UInt32)

Pokusí se převést reprezentaci rozsahu čísla na 32bitové celé číslo bez znaménka ekvivalentní. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(String, UInt32)

Pokusí se převést řetězcovou reprezentaci čísla na 32bitové celočíselné ekvivalenty. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32)

Pokusí se analyzovat rozsah znaků do hodnoty.

TryParse(String, IFormatProvider, UInt32)

Pokusí se analyzovat řetězec do hodnoty.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt32)

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

TryParse(ReadOnlySpan<Byte>, UInt32)

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na 32bitový celočíselnou ekvivalent.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt32)

Pokusí se převést reprezentaci rozsahu čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 32bitový celočíselnou ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(String, NumberStyles, IFormatProvider, UInt32)

Pokusí se převést řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 32bitové celočíselné ekvivalenty. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o utf8Text.

result
UInt32

Při vrácení obsahuje výsledek úspěšné analýzy utf8Text nebo nedefinovanou hodnotu při selhání.

Návraty

true, pokud se utf8Text úspěšně parsoval; jinak false.

Platí pro

TryParse(ReadOnlySpan<Char>, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Pokusí se převést reprezentaci rozsahu čísla na 32bitové celé číslo bez znaménka ekvivalentní. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky, které představují číslo k převodu.

result
UInt32

Pokud tato metoda vrátí, obsahuje 32bitovou celočíselnou hodnotu bez znaménka, která je ekvivalentní číslu obsaženému v s, pokud převod proběhl úspěšně, nebo nula, pokud převod selhal. Převod selže, pokud je parametr snull nebo Empty, není ve správném formátu nebo představuje číslo, které je menší než UInt32.MinValue nebo větší než UInt32.MaxValue. Tento parametr je předán neinicializovaný; všechny hodnoty původně zadané v result budou přepsány.

Návraty

true, pokud byl s úspěšně převeden; jinak false.

Atributy

Platí pro

TryParse(String, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Alternativa odpovídající specifikaci CLS
System.Int64.TryParse(String, Int64)

Pokusí se převést řetězcovou reprezentaci čísla na 32bitové celočíselné ekvivalenty. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

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

Parametry

s
String

Řetězec, který představuje číslo, které se má převést.

result
UInt32

Pokud tato metoda vrátí, obsahuje 32bitovou celočíselnou hodnotu bez znaménka, která je ekvivalentní číslu obsaženému v s, pokud převod proběhl úspěšně, nebo nula, pokud převod selhal. Převod selže, pokud je parametr snull nebo Empty, není ve správném formátu nebo představuje číslo, které je menší než UInt32.MinValue nebo větší než UInt32.MaxValue. Tento parametr je předán neinicializovaný; všechny hodnoty původně zadané v result budou přepsány.

Návraty

true, pokud byl s úspěšně převeden; jinak false.

Atributy

Příklady

Následující příklad volá metodu TryParse(String, UInt32) jednou pro každý prvek v řetězcovém poli.

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.

Poznámky

Metoda TryParse se podobá metodě Parse s tím rozdílem, že při selhání převodu nevyvolá výjimku. Tato metoda eliminuje potřebu použití zpracování výjimek k otestování FormatException, pokud je s neplatná a nelze ji úspěšně analyzovat.

Parametr s by měl být řetězcovou reprezentací desetinného čísla v následujícím formátu:

[ws] [znaménko]číslice[ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
ws Volitelné prázdné znaky.
znaménko Volitelné znaménko. Platné znaky znaménka jsou určeny NumberFormatInfo.NegativeSign a NumberFormatInfo.PositiveSign vlastnostmi aktuální jazykové verze.
číslice Posloupnost desetinných číslic v rozsahu od 0 do 9.

Parametr s se interpretuje pomocí stylu NumberStyles.Integer. Kromě desetinných číslic jsou povoleny pouze úvodní a koncové mezery s počátečním symbolem. Chcete-li explicitně definovat prvky stylu s informacemi o formátování specifické pro jazykovou verzi, které mohou být přítomny v s, zavolejte metodu TryParse(String, NumberStyles, IFormatProvider, UInt32).

Poznámka

Řetězec zadaný parametrem s nemůže obsahovat oddělovače skupin ani oddělovač desetinných míst a nemůže mít zlomkovou část.

Parametr s je analyzován pomocí informací o formátování v objektu NumberFormatInfo pro aktuální jazykovou verzi systému. Další informace najdete v tématu NumberFormatInfo.CurrentInfo.

Toto přetížení interpretuje všechny číslice v parametru s jako desítkové číslice. Chcete-li parsovat řetězcovou reprezentaci šestnáctkového čísla, zavolejte místo toho TryParse(String, NumberStyles, IFormatProvider, UInt32) přetížení.

Viz také

Platí pro

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Pokusí se analyzovat rozsah znaků do hodnoty.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah znaků, které se mají analyzovat.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s.

result
UInt32

Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s, nebo nedefinovanou hodnotu při selhání.

Návraty

true, pokud se s úspěšně parsoval; jinak false.

Platí pro

TryParse(String, IFormatProvider, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Pokusí se analyzovat řetězec do hodnoty.

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

Parametry

s
String

Řetězec, který se má analyzovat.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s.

result
UInt32

Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s nebo nedefinovanou hodnotu při selhání.

Návraty

true, pokud se s úspěšně parsoval; jinak false.

Platí pro

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

style
NumberStyles

Bitové kombinace stylů čísel, které mohou být přítomny v utf8Text.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o utf8Text.

result
UInt32

Při vrácení obsahuje výsledek úspěšné analýzy utf8Text nebo nedefinovanou hodnotu při selhání.

Návraty

true, pokud se utf8Text úspěšně parsoval; jinak false.

Platí pro

TryParse(ReadOnlySpan<Byte>, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na 32bitový celočíselnou ekvivalent.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah obsahující znaky UTF-8 představující číslo, které se má převést.

result
UInt32

Pokud tato metoda vrátí, obsahuje 32bitovou celočíselnou hodnotu bez znaménka odpovídající číslu obsaženému v utf8Text pokud převod proběhl úspěšně, nebo nula, pokud převod selhal. Tento parametr je předán neinicializovaný; jakákoli hodnota původně zadaná ve výsledku se přepíše.

Návraty

true, pokud byl utf8Text úspěšně převeden; jinak false.

Platí pro

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Pokusí se převést reprezentaci rozsahu čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 32bitový celočíselnou ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

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, [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, 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

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky, které představují číslo k převodu. Rozsah se interpretuje pomocí stylu určeného parametrem style.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje povolený formát s. Typická hodnota pro zadání je Integer.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s.

result
UInt32

Pokud tato metoda vrátí, obsahuje 32bitovou celočíselnou hodnotu bez znaménka ekvivalentní číslu obsaženému v s, pokud převod byl úspěšný, nebo nula v případě selhání převodu. Převod selže, pokud je parametr snull nebo Empty, není ve formátu kompatibilním s stylenebo představuje číslo, které je menší než UInt32.MinValue nebo větší než UInt32.MaxValue. Tento parametr je předán neinicializovaný; všechny hodnoty původně zadané v result budou přepsány.

Návraty

true, pokud byl s úspěšně převeden; jinak false.

Atributy

Platí pro

TryParse(String, NumberStyles, IFormatProvider, UInt32)

Zdroj:
UInt32.cs
Zdroj:
UInt32.cs
Zdroj:
UInt32.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Alternativa odpovídající specifikaci CLS
System.Int64.TryParse(String, Int64)

Pokusí se převést řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 32bitové celočíselné ekvivalenty. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

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

Parametry

s
String

Řetězec, který představuje číslo, které se má převést. Řetězec se interpretuje pomocí stylu určeného parametrem style.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje povolený formát s. Typická hodnota pro zadání je Integer.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s.

result
UInt32

Pokud tato metoda vrátí, obsahuje 32bitovou celočíselnou hodnotu bez znaménka ekvivalentní číslu obsaženému v s, pokud převod byl úspěšný, nebo nula v případě selhání převodu. Převod selže, pokud je parametr snull nebo Empty, není ve formátu kompatibilním s stylenebo představuje číslo, které je menší než UInt32.MinValue nebo větší než UInt32.MaxValue. Tento parametr je předán neinicializovaný; všechny hodnoty původně zadané v result budou přepsány.

Návraty

true, pokud byl s úspěšně převeden; jinak false.

Atributy

Výjimky

style není NumberStyles hodnota.

-nebo-

style není kombinací hodnot AllowHexSpecifier a HexNumber.

Příklady

Následující příklad volá metodu TryParse(String, NumberStyles, IFormatProvider, UInt32) s několika různými řetězci a NumberStyles hodnotami.

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.

Poznámky

Metoda TryParse(String, NumberStyles, IFormatProvider, UInt32) se podobá metodě Parse(String, NumberStyles, IFormatProvider) s tím rozdílem, že při selhání převodu nevyvolá výjimku. Tato metoda eliminuje potřebu použití zpracování výjimek k otestování FormatException, pokud je s neplatná a nelze ji úspěšně analyzovat.

Parametr style definuje prvky stylu (například prázdné znaky nebo kladné nebo záporné znaménko), které jsou povoleny v parametru s, aby operace analýzy byla úspěšná. Musí se jednat o kombinaci bitových příznaků z NumberStyles výčtu. V závislosti na hodnotě stylemůže parametr s obsahovat následující prvky:

[ws] [$] [znaménko] [číslice,]číslic[.fractional_digits][E[znaménko]exponential_digits][ws]

Položky v hranatých závorkách ([ a ]) jsou volitelné. Pokud style parametr obsahuje NumberStyles.AllowHexSpecifier, může parametr s obsahovat následující prvky:

[ws]šestnáctkové[ws]

Následující tabulka popisuje jednotlivé prvky.

Element Popis
ws Volitelné prázdné znaky. Prázdné znaky se můžou objevit na začátku s, pokud style obsahuje příznak NumberStyles.AllowLeadingWhite nebo na konci s, pokud style obsahuje příznak NumberStyles.AllowTrailingWhite.
$ Symbol měny specifický pro jazykovou verzi. Jeho pozice v řetězci je definována CurrencyPositivePattern vlastnost objektu NumberFormatInfo vrácenou GetFormat metodou parametru provider. Symbol měny se může zobrazit v s, pokud style obsahuje příznak NumberStyles.AllowCurrencySymbol.
znaménko Volitelné znaménko. Znaménko se může zobrazit na začátku s, pokud style obsahuje příznak NumberStyles.AllowLeadingSign a může se zobrazit na konci s pokud style obsahuje příznak NumberStyles.AllowTrailingSign. Závorky lze použít v s k označení záporné hodnoty, pokud style obsahuje příznak NumberStyles.AllowParentheses. Pokud je však přítomno záporné znaménko, s může představovat hodnotu nula, aby operace analýzy byla úspěšná.
číslice Posloupnost číslic od 0 do 9.
, Oddělovač skupin specifických pro jazykovou verzi. Oddělovač skupiny jazykové verze určené provider se může zobrazit v s, pokud style obsahuje příznak NumberStyles.AllowThousands.
. Symbol desetinné čárky specifické pro jazykovou verzi. Symbol desetinné čárky jazykové verze určené provider se může objevit v s, pokud style obsahuje příznak NumberStyles.AllowDecimalPoint.
fractional_digits Jeden nebo více výskytů číslice 0. Desetinná číslice se můžou v s zobrazovat jenom v případě, že style obsahuje příznak NumberStyles.AllowDecimalPoint.
E Znak "e" nebo "E", který označuje, že hodnota je reprezentována exponenciálním (vědeckým) zápisem. Parametr s může představovat číslo v exponenciálním zápisu, pokud style obsahuje příznak NumberStyles.AllowExponent.
exponential_digits Posloupnost číslic od 0 do 9. Parametr s může představovat číslo v exponenciálním zápisu, pokud style obsahuje příznak NumberStyles.AllowExponent.
šestnáctkové Posloupnost šestnáctkových číslic od 0 do f nebo 0 až F.

Poznámka

Všechny ukončující NUL (U+0000) znaky v s jsou ignorovány operací analýzy bez ohledu na hodnotu argumentu style.

Řetězec s desetinnými číslicemi (který odpovídá příznaku NumberStyles.None) se vždy úspěšně parsuje. Většina zbývajících NumberStyles členů ovládacích prvků, které mohou být přítomny, ale nemusí být přítomny, v tomto vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles členy ovlivňují prvky, které mohou být přítomny v s.

Neseloženého NumberStyles hodnot Prvky povolené v hodnotě kromě číslic
None Pouze desítkové číslice.
AllowDecimalPoint Desetinná čárka (.) a prvky fractional_digits. fractional_digits však musí obsahovat pouze jednu nebo více číslic, nebo metoda vrátí false.
AllowExponent Znak "e" nebo "E", který označuje exponenciální notaci spolu s exponential_digits. Pokud s představuje číslo v exponenciálním zápisu, nemůže mít nenulovou desetinnou komponentu.
AllowLeadingWhite Element ws na začátku s.
AllowTrailingWhite Prvek ws na konci s.
AllowLeadingSign Prvek podepisující před číslice.
AllowTrailingSign Znak prvek za číslice.
AllowParentheses Symbol prvek ve formě závorek ohraničující nulovou číselnou hodnotu.
AllowThousands Oddělovač skupin (,) – element.
AllowCurrencySymbol Prvek měny ($).
Currency Všechny prvky. s však nemůže představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu.
Float Prvek ws na začátku nebo konci s, znaménko na začátku sa symbol desetinné čárky (.). Parametr s může také použít exponenciální zápis.
Number Prvky ws, znaménko, oddělovač skupin (,) a desetinná čárka (.).
Any Všechny prvky. s však nemůže představovat šestnáctkové číslo.

Pokud se používá příznak NumberStyles.AllowHexSpecifier, s musí být šestnáctková hodnota. Jedinými dalšími příznaky, které mohou být přítomné v style, jsou NumberStyles.AllowLeadingWhite a NumberStyles.AllowTrailingWhite. (Výčet NumberStyles má složený styl, HexNumber, který obsahuje oba příznaky prázdných znaků.)

Poznámka

Pokud s je řetězcová reprezentace šestnáctkového čísla, nemůže před ní předcházet žádná dekorace (například 0x nebo &h), která ho odlišuje jako šestnáctkové číslo. To způsobí selhání převodu.

Parametr provider je IFormatProvider implementace. Jeho GetFormat metoda vrátí objekt NumberFormatInfo, který poskytuje informace specifické pro jazykovou verzi o formátu s. Parametr provider může být některý z následujících:

  • Objekt CultureInfo, který představuje jazykovou verzi, která poskytuje informace o formátování. Jeho GetFormat metoda vrátí objekt NumberFormatInfo, který poskytuje číselné informace o formátování pro danou jazykovou verzi.

  • Objekt NumberFormatInfo, který poskytuje informace o číselném formátování. (Její implementace GetFormat se vrátí sama.)

  • Vlastní objekt, který implementuje IFormatProvider. Jeho GetFormat metoda vytvoří instanci a vrátí objekt NumberFormatInfo, který poskytuje informace o formátování.

Pokud je providernull, použije se objekt NumberFormatInfo pro aktuální jazykovou verzi.

Viz také

Platí pro