Sdílet prostřednictvím


UInt64.TryParse Metoda

Definice

Pokusí se převést řetězcovou reprezentaci čísla na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

Přetížení

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt64)

Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.

TryParse(ReadOnlySpan<Char>, UInt64)

Pokusí se převést reprezentaci rozsahu čísla na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

TryParse(String, UInt64)

Pokusí se převést řetězcovou reprezentaci čísla na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt64)

Pokusí se parsovat rozsah znaků na hodnotu.

TryParse(String, IFormatProvider, UInt64)

Pokusí se parsovat řetězec na hodnotu.

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

Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.

TryParse(ReadOnlySpan<Byte>, UInt64)

Pokusí se převést znakový rozsah UTF-8 obsahující řetězcovou reprezentaci čísla na jeho 64bitový celočíselný ekvivalent bez znaménka.

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

Pokusí se převést reprezentaci rozsahu čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

TryParse(String, NumberStyles, IFormatProvider, UInt64)

Pokusí se převést řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt64)

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8, které se mají analyzovat.

provider
IFormatProvider

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

result
UInt64

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

Návraty

truepokud utf8Text byl úspěšně parsován, v opačném případě . false

Platí pro

TryParse(ReadOnlySpan<Char>, UInt64)

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Pokusí se převést reprezentaci rozsahu čísla na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

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

Parametry

s
ReadOnlySpan<Char>

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

result
UInt64

Když se tato metoda vrátí, obsahuje 64bitovou celočíselnou hodnotu bez znaménka, která odpovídá číslu obsaženému v , pokud byl převod úspěšný, nebo nula, spokud převod selhal. Převod selže, pokud s parametr nemá null správný Emptyformát nebo představuje číslo menší než UInt64.MinValue nebo větší než UInt64.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result se přepíše.

Návraty

true pokud s byl převod úspěšně, v opačném případě false.

Atributy

Platí pro

TryParse(String, UInt64)

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Alternativa odpovídající specifikaci CLS
System.Decimal.Parse(String)

Pokusí se převést řetězcovou reprezentaci čísla na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

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

Parametry

s
String

Řetězec, který představuje číslo k převedení.

result
UInt64

Když se tato metoda vrátí, obsahuje 64bitovou celočíselnou hodnotu bez znaménka, která odpovídá číslu obsaženému v , pokud byl převod úspěšný, nebo nula, spokud převod selhal. Převod selže, pokud s parametr nemá null správný Emptyformát nebo představuje číslo menší než UInt64.MinValue nebo větší než UInt64.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result se přepíše.

Návraty

true pokud s byl převod úspěšně, v opačném případě false.

Atributy

Příklady

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

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.

Poznámky

Metoda TryParse(String, UInt64) je podobná Parse(String) metodě s tím rozdílem, že nevyvolá výjimku, pokud převod selže. Tato metoda eliminuje potřebu použití zpracování výjimek k otestování FormatException , jestli s je neplatná a nelze ji úspěšně analyzovat.

Parametrem s by mělo být řetězcové vyjádření desetinného čísla v následujícím tvaru:

[ws] [sign] digits[ws]

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

Element Popis
Ws Volitelné prázdné místo.
sign Nepovinný znak. Platné znakové znaky jsou určeny vlastnostmi NumberFormatInfo.NegativeSign a NumberFormatInfo.PositiveSign aktuální jazykové verze.
Číslic Posloupnost čísel v desítkové soustavě v rozsahu od 0 do 9.

Parametr s je interpretován pomocí NumberStyles.Integer stylu. Kromě desítkových číslic jsou povoleny pouze úvodní a koncové mezery s počátečním znaménkem. 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, UInt64) .

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 se analyzuje pomocí informací o formátování v objektu NumberFormatInfo inicializovaném pro aktuální systémovou jazykovou verzi. Další informace naleznete v tématu NumberFormatInfo.CurrentInfo.

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

Viz také

Platí pro

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt64)

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Pokusí se parsovat rozsah znaků na hodnotu.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah znaků, které se mají analyzovat.

provider
IFormatProvider

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

result
UInt64

Když se tato metoda vrátí, obsahuje výsledek úspěšné analýzy snebo nedefinovanou hodnotu při selhání.

Návraty

truepokud s byl úspěšně parsován, v opačném případě . false

Platí pro

TryParse(String, IFormatProvider, UInt64)

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Pokusí se parsovat řetězec na hodnotu.

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

Parametry

s
String

Řetězec, který chcete analyzovat.

provider
IFormatProvider

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

result
UInt64

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

Návraty

truepokud s byl úspěšně parsován, v opačném případě . false

Platí pro

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

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8, které se mají analyzovat.

style
NumberStyles

Bitové kombinace stylů čísel, které se můžou vyskytovat v nástroji utf8Text.

provider
IFormatProvider

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

result
UInt64

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

Návraty

truepokud utf8Text byl úspěšně parsován, v opačném případě . false

Platí pro

TryParse(ReadOnlySpan<Byte>, UInt64)

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Pokusí se převést znakový rozsah UTF-8 obsahující řetězcové vyjádření čísla na jeho 64bitové celočíselné ekvivalent.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

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

result
UInt64

Když tato metoda vrátí, obsahuje 64bitovou celočíselnou hodnotu bez znaménka, která odpovídá číslu obsaženému v případě úspěšného převodu, nebo nula, utf8Text pokud převod selhal. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná ve výsledku bude přepsána.

Návraty

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

Platí pro

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

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Pokusí se převést span reprezentace čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky, které představují číslo, které se má převést. 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, která se má zadat, je Integer.

provider
IFormatProvider

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

result
UInt64

Když tato metoda vrátí, obsahuje 64bitovou celočíselnou hodnotu bez znaménka, která odpovídá číslu obsaženému v s, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil. Převod selže, pokud s parametr je null nebo Empty, není ve formátu kompatibilním s stylenebo představuje číslo menší než UInt64.MinValue nebo větší než UInt64.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result bude přepsána.

Návraty

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

Atributy

Platí pro

TryParse(String, NumberStyles, IFormatProvider, UInt64)

Zdroj:
UInt64.cs
Zdroj:
UInt64.cs
Zdroj:
UInt64.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Alternativa odpovídající specifikaci CLS
System.Decimal.Parse(String)

Pokusí se převést řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 64bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

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

Parametry

s
String

Řetězec, který představuje číslo k převedení. Řetězec je interpretován pomocí stylu určeného parametrem style .

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje povolený formát .s Typická hodnota, která se má zadat, je Integer.

provider
IFormatProvider

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

result
UInt64

Když tato metoda vrátí, obsahuje 64bitovou celočíselnou hodnotu bez znaménka, která odpovídá číslu obsaženému v s, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil. Převod selže, pokud s parametr je null nebo Empty, není ve formátu kompatibilním s stylenebo představuje číslo menší než UInt64.MinValue nebo větší než UInt64.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result bude přepsána.

Návraty

true pokud s byl převod úspěšně, v opačném případě false.

Atributy

Výjimky

style není NumberStyles hodnota.

-nebo-

style není kombinací AllowHexSpecifier hodnot a HexNumber .

Příklady

Následující příklad volá metodu TryParse(String, NumberStyles, IFormatProvider, UInt64) 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)
   {
      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.

Poznámky

Metoda TryParse(String, NumberStyles, IFormatProvider, UInt64) se podobá metodě s tím rozdílem Parse(String, NumberStyles, IFormatProvider) , že pokud se převod nezdaří, nevyvolá výjimku. Tato metoda eliminuje potřebu použití zpracování výjimek k otestování FormatException , pokud s je 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 pro úspěšnou operaci analýzy. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . V závislosti na hodnotě styles může parametr obsahovat následující prvky:

[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

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

[ws] hexdigits[ws]

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

Element Popis
Ws Volitelné prázdné místo. Prázdné znaky se mohou zobrazit na začátku, s pokud style obsahuje NumberStyles.AllowLeadingWhite příznak, nebo na konci s , pokud style obsahuje NumberStyles.AllowTrailingWhite příznak.
$ Symbol měny pro konkrétní 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 NumberStyles.AllowCurrencySymbol příznak .
sign Nepovinný znak. Znaménko se může zobrazit na začátku, s pokud style obsahuje NumberStyles.AllowLeadingSign příznak, a může se zobrazit na konci, s pokud style obsahuje NumberStyles.AllowTrailingSign příznak. Závorky lze v s použít k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak. Pokud je však znaménko záporné, s může představovat pouze nulovou hodnotu pro úspěšnou operaci analýzy.
Číslic Řada číslic od 0 do 9.
, Oddělovač skupin specifický pro jazykovou verzi. Oddělovač skupin jazykové verze určené parametrem provider se může zobrazit v s , pokud style obsahuje NumberStyles.AllowThousands příznak .
. Symbol desetinné čárky specifický pro jazykovou verzi. Symbol desetinné čárky jazykové verze určené nástrojem provider se může zobrazit v s , pokud style obsahuje NumberStyles.AllowDecimalPoint příznak .
Fractional_digits Jeden nebo více výskytů číslice 0. Desetinné číslice se můžou zobrazit jen v s případě, že styleNumberStyles.AllowDecimalPoint obsahuje příznak .
E Znak "e" nebo "E", který určuje, že hodnota je reprezentován v exponenciální (vědecké) notaci. Parametr s může představovat číslo v exponenciálním zápisuNumberStyles.AllowExponent, pokud style obsahuje příznak .
exponential_digits Řada číslic od 0 do 9. Parametr s může představovat číslo v exponenciálním zápisuNumberStyles.AllowExponent, pokud style obsahuje příznak .
hexdigits Posloupnost šestnáctkových číslic od 0 do f nebo id 0 do F.

Poznámka

Operace analýzy ignoruje všechny ukončující znaky s NUL (U+0000) bez ohledu na hodnotu argumentu style .

Řetězec pouze s desítkovými číslicemi (který odpovídá příznaku NumberStyles.None ) se vždy úspěšně parsuje. Většina zbývajících NumberStyles členů řídí prvky, 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 snástroji .

Neseseparované NumberStyles hodnoty Prvky, které jsou povoleny v hodnotě kromě číslic
None Pouze desítkové číslice.
AllowDecimalPoint Desetinná čárka (.) a fractional_digits prvky. Fractional_digits však musí obsahovat pouze jednu nebo více číslic, nebo metoda vrátí falsehodnotu .
AllowExponent Znak "e" nebo "E", který označuje exponenciální zápis 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 Element ws na konci .s
AllowLeadingSign Prvek znaménka před číslicemi.
AllowTrailingSign Prvek znaménka za číslicemi.
AllowParentheses Element sign ve formě závorek ohraničující nulovou číselnou hodnotu.
AllowThousands Element oddělovač skupin (,).
AllowCurrencySymbol Element currency ($).
Currency Všechny prvky. Nemůže však s představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu.
Float Element ws na začátku nebo na konci s, znaménko na začátku sa symbol desetinné čárky (.) Parametr s může také používat exponenciální zápis.
Number Elementy ws, znaménko, oddělovač skupin (,) a desetinná čárka (.)
Any Všechny prvky. Nemůže však s představovat šestnáctkové číslo.

Pokud se NumberStyles.AllowHexSpecifier použije příznak, s musí to být šestnáctková hodnota. Platné šestnáctkové znaky jsou 0-9, A-F a a-f. Předpona 0x se nepodporuje a způsobí selhání operace analýzy. Jedinými dalšími příznaky, které se můžou v style nástroji vyskytovat, jsou NumberStyles.AllowLeadingWhite a NumberStyles.AllowTrailingWhite. (Výčet NumberStyles má složený styl , HexNumberkterý zahrnuje oba příznaky prázdných znaků.)

Poznámka

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

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

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

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

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

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

Viz také

Platí pro