Sdílet prostřednictvím


BigInteger.TryParse Metoda

Definice

Pokusí se převést řetězcovou reprezentaci čísla na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda byl převod úspěšný.

Přetížení

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

Pokusí se převést řetězcové vyjádření čísla na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda převod proběhl úspěšně.

TryParse(String, IFormatProvider, BigInteger)

Pokusí se parsovat řetězec na hodnotu.

TryParse(ReadOnlySpan<Char>, IFormatProvider, BigInteger)

Pokusí se parsovat rozsah znaků na hodnotu.

TryParse(String, BigInteger)

Pokusí se převést řetězcové vyjádření čísla na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda převod proběhl úspěšně.

TryParse(ReadOnlySpan<Char>, BigInteger)

Pokusí se převést reprezentaci čísla obsaženého v zadaném rozsahu znaků jen pro čtení na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda byl převod úspěšný.

TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Pokusí se převést řetězcové vyjádření čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda převod proběhl úspěšně.

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

Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs

Pokusí se převést řetězcové vyjádření čísla na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda převod proběhl úspěšně.

public:
 static bool TryParse(ReadOnlySpan<char> value, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result);
public:
 static bool TryParse(ReadOnlySpan<char> value, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result) = System::Numerics::INumberBase<System::Numerics::BigInteger>::TryParse;
public static bool TryParse (ReadOnlySpan<char> value, System.Globalization.NumberStyles style, IFormatProvider? provider, out System.Numerics.BigInteger result);
public static bool TryParse (ReadOnlySpan<char> value, System.Globalization.NumberStyles style, IFormatProvider provider, out System.Numerics.BigInteger result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * BigInteger -> bool
Public Shared Function TryParse (value As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As BigInteger) As Boolean

Parametry

value
ReadOnlySpan<Char>

Reprezentace čísla jako rozsahu znaků jen pro čtení.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje prvky stylu, které mohou být přítomny v value. Typická hodnota, která se má zadat, je Integer.

provider
IFormatProvider

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

result
BigInteger

Když tato metoda vrátí hodnotu , obsahuje BigInteger ekvivalent k číslu, které je obsaženo v value, nebo Zero pokud převod selhal. Převod se nezdaří, pokud value je parametr prázdný rozsah znaků nebo není ve formátu, který je kompatibilní s style. Tento parametr se předává neinicializovaný.

Návraty

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

Výjimky

style není NumberStyles hodnota.

-nebo-

style AllowHexSpecifier obsahuje příznak nebo HexNumber spolu s jinou hodnotou.

Poznámky

Toto přetížení se podobá Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) metodě 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 value 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 value pro úspěšnou operaci analýzy. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . V závislosti na hodnotě stylevalue může parametr obsahovat následující prvky:

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

style Pokud parametr zahrnuje AllowHexSpecifier, value může parametr obsahovat následující prvky:

[ws] hexdigits[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. Prázdné znaky se mohou zobrazit na začátku, value pokud style obsahuje NumberStyles.AllowLeadingWhite příznak, nebo na konci value , pokud style obsahuje NumberStyles.AllowTrailingWhite příznak.
$ Symbol měny pro konkrétní jazykovou verzi. Jeho pozice v value je definována CurrencyPositivePattern vlastností objektu NumberFormatInfo vrácenou metodou GetFormat parametru provider . Symbol měny se může zobrazit v value , pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak .
sign Nepovinný znak. Znaménko se může zobrazit na začátku, value pokud style obsahuje NumberStyles.AllowLeadingSign příznak, a může se zobrazit na konci, value pokud style obsahuje NumberStyles.AllowTrailingSign příznak. Závorky lze v value použít k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak.
Čí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 value , 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 value , 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 value 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 value 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 value 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 .

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 value představuje číslo v exponenciálním zápisu, nemůže mít nenulovou desetinnou komponentu.
AllowLeadingWhite Element ws na začátku .value
AllowTrailingWhite Element ws na konci .value
AllowLeadingSign Prvek znaménka před číslicemi.
AllowTrailingSign Prvek znaménka za číslicemi.
AllowParentheses Element sign ve formě závorek ohraničující číselnou hodnotu.
AllowThousands Element oddělovač skupin (,).
AllowCurrencySymbol Element currency ($).
Currency Všechny prvky. Nemůže však value představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu.
Float Element ws na začátku nebo na konci value, znaménko na začátku valuea symbol desetinné čárky (.) Parametr value 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 value představovat šestnáctkové číslo.

Pokud se NumberStyles.AllowHexSpecifier použije příznak, value musí to být šestnáctková hodnota. 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ů.)

Parametr provider je IFormatProvider implementace. Jeho GetFormat metoda vrátí NumberFormatInfo objekt, který poskytuje informace specifické pro jazykovou verzi formátu .value Parametr 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 pouze GetFormat vrací 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

TryParse(String, IFormatProvider, BigInteger)

Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs

Pokusí se parsovat řetězec na hodnotu.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result) = IParsable<System::Numerics::BigInteger>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out System.Numerics.BigInteger result);
static member TryParse : string * IFormatProvider * BigInteger -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As BigInteger) As Boolean

Parametry

s
String

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

provider
IFormatProvider

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

result
BigInteger

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

Návraty

true pokud s byl úspěšně parsován, jinak hodnota false.

Platí pro

TryParse(ReadOnlySpan<Char>, IFormatProvider, BigInteger)

Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs

Pokusí se parsovat rozsah znaků na hodnotu.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result) = ISpanParsable<System::Numerics::BigInteger>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out System.Numerics.BigInteger result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * BigInteger -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As BigInteger) As Boolean

Parametry

s
ReadOnlySpan<Char>

Rozsah znaků, které se mají analyzovat.

provider
IFormatProvider

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

result
BigInteger

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

Návraty

true pokud s byl úspěšně parsován, jinak hodnota false.

Platí pro

TryParse(String, BigInteger)

Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs

Pokusí se převést řetězcové vyjádření čísla na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda převod proběhl úspěšně.

public:
 static bool TryParse(System::String ^ value, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result);
public static bool TryParse (string value, out System.Numerics.BigInteger result);
public static bool TryParse (string? value, out System.Numerics.BigInteger result);
static member TryParse : string * BigInteger -> bool
Public Shared Function TryParse (value As String, ByRef result As BigInteger) As Boolean

Parametry

value
String

Řetězcové vyjádření čísla.

result
BigInteger

Když tato metoda vrátí hodnotu , obsahuje BigInteger ekvivalent k číslu, které je obsaženo v value, nebo nula (0), pokud se převod nezdaří. Převod se nezdaří, value pokud parametr má null nebo nemá správný formát. Tento parametr se předává neinicializovaný.

Návraty

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

Výjimky

value je null.

Příklady

Následující příklad používá metodu TryParse(String, BigInteger) k vytvoření instance dvou BigInteger objektů. Pokud jsou převody úspěšné, vynásobí každý objekt jiným číslem a pak zavolá metodu Compare k určení vztahu mezi těmito dvěma objekty.

BigInteger number1, number2;
bool succeeded1 = BigInteger.TryParse("-12347534159895123", out number1);
bool succeeded2 = BigInteger.TryParse("987654321357159852", out number2);
if (succeeded1 && succeeded2)
{
   number1 *= 3;
   number2 *= 2;
   switch (BigInteger.Compare(number1, number2))
   {
      case -1:
         Console.WriteLine("{0} is greater than {1}.", number2, number1);
         break;
      case 0:
         Console.WriteLine("{0} is equal to {1}.", number1, number2);
         break;
      case 1:
         Console.WriteLine("{0} is greater than {1}.", number1, number2);
         break;
   }
}
else
{
   if (!succeeded1)
      Console.WriteLine("Unable to initialize the first BigInteger value.");

   if (!succeeded2)
      Console.WriteLine("Unable to initialize the second BigInteger value.");
}
// The example displays the following output:
//      1975308642714319704 is greater than -37042602479685369.
    let mutable number1 = BigInteger.Zero
    let mutable number2 = BigInteger.Zero

    let succeeded1 = BigInteger.TryParse("-12347534159895123", &number1)
    let succeeded2 = BigInteger.TryParse("987654321357159852", &number2)

    if succeeded1 && succeeded2 then
        number1 <- number1 * 3I
        number2 <- number2 * 2I

        match BigInteger.Compare(number1, number2) with
        | -1 -> printfn $"{number2} is greater than {number2}."
        | 0 -> printfn $"{number1} is equal to {number2}."
        | 1
        | _ -> printfn $"{number1} is greater than {number2}."
    else
        if not succeeded1 then
            printfn "Unable to initialize the first BigInteger value."

        if not succeeded2 then
            printfn "Unable to initialize the second BigInteger value."

// The example displays the following output:
//      1975308642714319704 is greater than -37042602479685369.
Dim number1 As BigInteger = BigInteger.Zero
Dim number2 As BigInteger = BigInteger.Zero
Dim succeeded1 As Boolean = BigInteger.TryParse("-12347534159895123", number1)
Dim succeeded2 As Boolean = BigInteger.TryParse("987654321357159852", number2)
If succeeded1 AndAlso succeeded2
   number1 *= 3
   number2 *= 2
   Select Case BigInteger.Compare(number1, number2)
      Case -1
         Console.WriteLine("{0} is greater than {1}.", number2, number1)
      Case 0
         Console.WriteLine("{0} is equal to {1}.", number1, number2)
      Case 1
         Console.WriteLine("{0} is greater than {1}.", number1, number2)
   End Select      
Else
   If Not succeeded1 Then 
      Console.WriteLine("Unable to initialize the first BigInteger value.")
   End If
   If Not succeeded2 Then
      Console.WriteLine("Unable to initialize the second BigInteger value.")
   
   End If
End If
' The example displays the following output:
'      1975308642714319704 is greater than -37042602479685369.

Poznámky

Metoda TryParse(String, BigInteger) se podobá metodě s tím rozdílem Parse(String) , že pokud se převod nezdaří, nevyvolá výjimku. Tato metoda eliminuje potřebu použití zpracování výjimek k testování FormatException , zda value je neplatné a nelze ji úspěšně analyzovat.

Parametr value by měl být řetězcovým vyjádřením 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é znaky znaménka 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.

Poznámka

Řetězec určený parametrem value nesmí obsahovat žádné oddělovače skupin ani oddělovač desetinných míst a nesmí obsahovat desetinnou část.

Parametr se value interpretuje 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 value, zavolejte metodu TryParse(String, NumberStyles, IFormatProvider, BigInteger) .

Parametr value se analyzuje pomocí informací o formátování v objektu NumberFormatInfo pro aktuální jazykovou verzi. Další informace naleznete v tématu NumberFormatInfo.CurrentInfo.

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

Viz také

Platí pro

TryParse(ReadOnlySpan<Char>, BigInteger)

Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs

Pokusí se převést reprezentaci čísla obsaženého v zadaném rozsahu znaků jen pro čtení na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda byl převod úspěšný.

public:
 static bool TryParse(ReadOnlySpan<char> value, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result);
public static bool TryParse (ReadOnlySpan<char> value, out System.Numerics.BigInteger result);
static member TryParse : ReadOnlySpan<char> * BigInteger -> bool
Public Shared Function TryParse (value As ReadOnlySpan(Of Char), ByRef result As BigInteger) As Boolean

Parametry

value
ReadOnlySpan<Char>

Reprezentace čísla jako rozsahu znaků jen pro čtení.

result
BigInteger

Když tato metoda vrátí hodnotu , obsahuje BigInteger ekvivalent k číslu, které je obsaženo v value, nebo nula (0), pokud se převod nezdaří. Převod selže, pokud value parametr je prázdný rozsah znaků nebo nemá správný formát. Tento parametr se předává neinicializovaný.

Návraty

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

Viz také

Platí pro

TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs
Zdroj:
BigInteger.cs

Pokusí se převést řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho BigInteger ekvivalent a vrátí hodnotu, která označuje, zda převod proběhl úspěšně.

public:
 static bool TryParse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result);
public:
 static bool TryParse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result) = System::Numerics::INumberBase<System::Numerics::BigInteger>::TryParse;
public static bool TryParse (string value, System.Globalization.NumberStyles style, IFormatProvider provider, out System.Numerics.BigInteger result);
public static bool TryParse (string? value, System.Globalization.NumberStyles style, IFormatProvider? provider, out System.Numerics.BigInteger result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * BigInteger -> bool
Public Shared Function TryParse (value As String, style As NumberStyles, provider As IFormatProvider, ByRef result As BigInteger) As Boolean

Parametry

value
String

Řetězcové vyjádření čísla. Řetězec se interpretuje pomocí stylu určeného parametrem style.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje prvky stylu, které mohou být přítomny v value. Typická hodnota, která se má zadat, je Integer.

provider
IFormatProvider

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

result
BigInteger

Když tato metoda vrátí hodnotu , obsahuje BigInteger ekvivalent k číslu, které je obsaženo v value, nebo Zero pokud převod selhal. Převod selže, value pokud parametr je null nebo není ve formátu, který vyhovuje style. Tento parametr se předává neinicializovaný.

Návraty

truepokud byl value parametr úspěšně převeden, v opačném případě . false

Výjimky

style není NumberStyles hodnota.

-nebo-

style AllowHexSpecifier obsahuje příznak nebo HexNumber spolu s jinou hodnotou.

Příklady

Následující příklad provádí volání metody TryParse(String, NumberStyles, IFormatProvider, BigInteger) pomocí různých kombinací hodnot parametrů style a provider .

string numericString;
BigInteger number = BigInteger.Zero;

// Call TryParse with default values of style and provider.
numericString = "  -300   ";
if (BigInteger.TryParse(numericString, NumberStyles.Integer,
                       null, out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with the default value of style and
// a provider supporting the tilde as negative sign.
numericString = "  -300   ";
if (BigInteger.TryParse(numericString, NumberStyles.Integer,
                       new BigIntegerFormatProvider(), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with only AllowLeadingWhite and AllowTrailingWhite.
// Method returns false because of presence of negative sign.
numericString = "  -500   ";
if (BigInteger.TryParse(numericString,
                        NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite,
                        new BigIntegerFormatProvider(), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with AllowHexSpecifier and a hex value.
numericString = "F14237FFAAC086455192";
if (BigInteger.TryParse(numericString,
                        NumberStyles.AllowHexSpecifier,
                        null, out number))
   Console.WriteLine("'{0}' was converted to {1} (0x{1:x}).",
                     numericString, number);
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with AllowHexSpecifier and a negative hex value.
// Conversion fails because of presence of negative sign.
numericString = "-3af";
if (BigInteger.TryParse(numericString, NumberStyles.AllowHexSpecifier,
                       new BigIntegerFormatProvider(), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with only NumberStyles.None.
// Conversion fails because of presence of white space and sign.
numericString = " -300 ";
if (BigInteger.TryParse(numericString, NumberStyles.None,
                       new BigIntegerFormatProvider(), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
// Conversion fails because the string is formatted for the en-US culture.
numericString = "9,031,425,666,123,546.00";
if (BigInteger.TryParse(numericString, NumberStyles.Any,
                       new CultureInfo("fr-FR"), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
// Conversion succeeds because the string is properly formatted
// For the fr-FR culture.
numericString = "9 031 425 666 123 546,00";
if (BigInteger.TryParse(numericString, NumberStyles.Any,
                       new CultureInfo("fr-FR"), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);
// The example displays the following output:
//    '  -300   ' was converted to -300.
//    Conversion of '  -300   ' to a BigInteger failed.
//    Conversion of '  -500   ' to a BigInteger failed.
//    'F14237FFAAC086455192' was converted to -69613977002644837412462 (0xf14237ffaac086455192).
//    Conversion of '-3af' to a BigInteger failed.
//    Conversion of ' -300 ' to a BigInteger failed.
//    Conversion of '9,031,425,666,123,546.00' to a BigInteger failed.
//    '9 031 425 666 123 546,00' was converted to 9031425666123546.
    // Call TryParse with default values of style and provider.
    let numericString = "  -300   "

    match BigInteger.TryParse(numericString, NumberStyles.Integer, null) with
    | true, number -> printfn $"The string '{numericString}' parses to {number}"
    | _ -> printfn $"Conversion of {numericString} to a BigInteger failed."

    // Call TryParse with the default value of style and
    // a provider supporting the tilde as negative sign.
    let numericString = "  -300   "

    match BigInteger.TryParse(numericString, NumberStyles.Integer, new BigIntegerFormatProvider()) with
    | true, number -> printfn $"The string '{numericString}' parses to {number}"
    | _ -> printfn $"Conversion of {numericString} to a BigInteger failed."

    // Call TryParse with only AllowLeadingWhite and AllowTrailingWhite.
    // Method returns false because of presence of negative sign.
    let numericString = "  -500   "

    match
        BigInteger.TryParse(
            numericString,
            NumberStyles.AllowLeadingWhite ||| NumberStyles.AllowTrailingWhite,
            new BigIntegerFormatProvider()
        )
    with
    | true, number -> printfn $"The string '{numericString}' parses to {number}"
    | _ -> printfn $"Conversion of {numericString} to a BigInteger failed."

    // Call TryParse with AllowHexSpecifier and a hex value.
    let numericString = "F14237FFAAC086455192"

    match BigInteger.TryParse(numericString, NumberStyles.AllowHexSpecifier, null) with
    | true, number -> printfn $"The string '{numericString}' parses to {number}, or 0x{number:x}."
    | _ -> printfn $"Conversion of {numericString} to a BigInteger failed."

    // Call TryParse with AllowHexSpecifier and a negative hex value.
    // Conversion fails because of presence of negative sign.
    let numericString = "-3af"

    match BigInteger.TryParse(numericString, NumberStyles.AllowHexSpecifier, null) with
    | true, number -> printfn $"The string '{numericString}' parses to {number}, or 0x{number:x}."
    | _ -> printfn $"Conversion of {numericString} to a BigInteger failed."

    // Call TryParse with only NumberStyles.None.
    // Conversion fails because of presence of white space and sign.
    let numericString = " -300 "

    match BigInteger.TryParse(numericString, NumberStyles.None, new BigIntegerFormatProvider()) with
    | true, number -> printfn $"The string '{numericString}' parses to {number}"
    | _ -> printfn $"Conversion of {numericString} to a BigInteger failed."

    // Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
    // Conversion fails because the string is formatted for the en-US culture.
    let numericString = "9,031,425,666,123,546.00"

    match BigInteger.TryParse(numericString, NumberStyles.Any, new CultureInfo("fr-FR")) with
    | true, number -> printfn $"The string '{numericString}' parses to {number}"
    | _ -> printfn $"Conversion of {numericString} to a BigInteger failed."

    // Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
    // Conversion succeeds because the string is properly formatted
    // For the fr-FR culture.
    let numericString = "9 031 425 666 123 546,00"

    match BigInteger.TryParse(numericString, NumberStyles.Any, new CultureInfo("fr-FR")) with
    | true, number -> printfn $"The string '{numericString}' parses to {number}"
    | _ -> printfn $"Conversion of {numericString} to a BigInteger failed."

// The example displays the following output:
//    '  -300   ' was converted to -300.
//    Conversion of '  -300   ' to a BigInteger failed.
//    Conversion of '  -500   ' to a BigInteger failed.
//    'F14237FFAAC086455192' was converted to -69613977002644837412462 (0xf14237ffaac086455192).
//    Conversion of '-3af' to a BigInteger failed.
//    Conversion of ' -300 ' to a BigInteger failed.
//    Conversion of '9,031,425,666,123,546.00' to a BigInteger failed.
//    '9 031 425 666 123 546,00' was converted to 9031425666123546.
Dim numericString As String
Dim number As BigInteger = BigInteger.Zero

' Call TryParse with default values of style and provider.
numericString = "  -300   "
If BigInteger.TryParse(numericString, NumberStyles.Integer,
                       Nothing, number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with the default value of style and 
' a provider supporting the tilde as negative sign.
numericString = "  -300   "
If BigInteger.TryParse(numericString, NumberStyles.Integer,
                       New BigIntegerFormatProvider(), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with only AllowLeadingWhite and AllowTrailingWhite.
' Method returns false because of presence of negative sign.
numericString = "  -500   "
If BigInteger.TryParse(numericString,
                    NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite,
                    New BigIntegerFormatProvider(), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with AllowHexSpecifier and a hex value.
numericString = "F14237FFAAC086455192"
If BigInteger.TryParse(numericString,
                    NumberStyles.AllowHexSpecifier,
                    Nothing, number) Then
   Console.WriteLine("'{0}' was converted to {1} (0x{1:x}).",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with AllowHexSpecifier and a negative hex value.
' Conversion fails because of presence of negative sign.
numericString = "-3af"
If BigInteger.TryParse(numericString, NumberStyles.AllowHexSpecifier,
                       New BigIntegerFormatProvider(), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with only NumberStyles.None.
' Conversion fails because of presence of white space and sign.
numericString = " -300 "
If BigInteger.TryParse(numericString, NumberStyles.None,
                       New BigIntegerFormatProvider(), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If 
                                            
' Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
' Conversion fails because the string is formatted for the en-US culture.
numericString = "9,031,425,666,123,546.00"
If BigInteger.TryParse(numericString, NumberStyles.Any,
                       New CultureInfo("fr-FR"), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If

' Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
' Conversion succeeds because the string is properly formatted 
' For the fr-FR culture.
numericString = "9 031 425 666 123 546,00"
If BigInteger.TryParse(numericString, NumberStyles.Any,
                       New CultureInfo("fr-FR"), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If
' The example displays the following output:
'    '  -300   ' was converted to -300.
'    Conversion of '  -300   ' to a BigInteger failed.
'    Conversion of '  -500   ' to a BigInteger failed.
'    'F14237FFAAC086455192' was converted to -69613977002644837412462 (0xf14237ffaac086455192).
'    Conversion of '-3af' to a BigInteger failed.
'    Conversion of ' -300 ' to a BigInteger failed.
'    Conversion of '9,031,425,666,123,546.00' to a BigInteger failed.
'    '9 031 425 666 123 546,00' was converted to 9031425666123546.

Několik jednotlivých volání TryParse(String, NumberStyles, IFormatProvider, BigInteger) metody předává instanci následující BigIntegerFormatProvider třídy, která definuje vlnovku (~) jako záporné znaménko.

public class BigIntegerFormatProvider : IFormatProvider
{
   public object GetFormat(Type formatType)
   {
      if (formatType == typeof(NumberFormatInfo))
      {
         NumberFormatInfo numberFormat = new NumberFormatInfo();
         numberFormat.NegativeSign = "~";
         return numberFormat;
      }
      else
      {
         return null;
      }
   }
}
type BigIntegerFormatProvider() =
    interface IFormatProvider with
        member _.GetFormat(formatType: Type) =
            if formatType = typeof<NumberFormatInfo> then
                let numberFormat = new NumberFormatInfo()
                numberFormat.NegativeSign <- "~"
                numberFormat
            else
                null
Public Class BigIntegerFormatProvider : Implements IFormatProvider
   Public Function GetFormat(formatType As Type) As Object _
                            Implements IFormatProvider.GetFormat
      If formatType Is GetType(NumberFormatInfo) Then
         Dim numberFormat As New NumberFormatInfo
         numberFormat.NegativeSign = "~"
         Return numberFormat
      Else
         Return Nothing
      End If      
   End Function
End Class

Poznámky

Metoda TryParse(String, NumberStyles, IFormatProvider, BigInteger) 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 value 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 value pro úspěšnou operaci analýzy. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . V závislosti na hodnotě stylevalue může parametr obsahovat následující prvky:

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

style Pokud parametr zahrnuje AllowHexSpecifier, value může parametr obsahovat následující prvky:

[ws] hexdigits[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. Prázdné znaky se mohou zobrazit na začátku, value pokud style obsahuje NumberStyles.AllowLeadingWhite příznak, nebo na konci value , 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 value , pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak .
sign Nepovinný znak. Znaménko se může zobrazit na začátku, value pokud style obsahuje NumberStyles.AllowLeadingSign příznak, a může se zobrazit na konci, value pokud style obsahuje NumberStyles.AllowTrailingSign příznak. Závorky lze v value použít k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak.
Čí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 value , 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 value , 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 value 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 value 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 value může představovat číslo v exponenciálním zápisuNumberStyles.AllowExponent, pokud style obsahuje příznak.
šestihranné 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 NUL (U+0000) bez s ohledu na hodnotu argumentu style .

Řetězec pouze 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ů řídí prvky, které mohou být přítomny, ale nejsou nutné, aby byly 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 nástroji value.

Neseseparované NumberStyles hodnoty Prvky, které jsou povoleny v hodnotě kromě číslic
None Pouze desítkové číslice.
AllowDecimalPoint Desetinná čárka (.) a fractional_digits elementy. Fractional_digits však musí obsahovat pouze jednu nebo více číslic 0, jinak metoda vrátí falsehodnotu .
AllowExponent Znak "e" nebo "E", který označuje exponenciální zápis spolu s exponential_digits. Pokud value představuje číslo v exponenciálním zápisu, nemůže mít nenulovou, zlomkovou komponentu.
AllowLeadingWhite Element ws na začátku souboru value.
AllowTrailingWhite Element ws na konci souboru value.
AllowLeadingSign Prvek sign před číslicemi.
AllowTrailingSign Prvek znaku za číslicemi.
AllowParentheses Element sign ve formě závorek ohraničující číselnou hodnotu.
AllowThousands Element oddělovače skupin (,).
AllowCurrencySymbol Element currency ($).
Currency Všechny prvky. value Nemůže však představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu.
Float Element ws na začátku nebo na konci value, znaménko na začátku valuea symbol desetinné čárky (.). Parametr value může také použít exponenciální notaci.
Number Elementy ws, sign, group oddělovač (,) a desetinná čárka (.).
Any Všechny prvky. Nemůže však value představovat šestnáctkové číslo.

Důležité

Pokud použijete metodu TryParse k zaokrouhlování řetězcové reprezentace BigInteger hodnoty, která byla výstupem ToString metody, měli byste použít metodu BigInteger.ToString(String) se specifikátorem formátu R pro vygenerování řetězcové BigInteger reprezentace hodnoty. Jinak řetězcová reprezentace BigInteger zachová pouze 50 nejvýznamnějších číslic původní hodnoty a data mohou být ztracena při použití TryParse metody k obnovení BigInteger hodnoty.

Pokud se NumberStyles.AllowHexSpecifier použije příznak, value musí být šestnáctková hodnota. Jedinými dalšími příznaky, které se můžou vyskytovat v style systému, 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 value je řetězcová reprezentace šestnáctkového čísla, nemůže předcházet žádná ozdoba (například 0x nebo &h), která ho rozlišuje jako šestnáctkové číslo. To způsobí selhání převodu.

Pokud value je šestnáctkový řetězec, TryParse(String, NumberStyles, IFormatProvider, BigInteger) metoda se interpretuje value jako záporné číslo uložené pomocí reprezentace komplementu dvou, pokud jsou první dvě šestnáctkové číslice větší než nebo rovny 0x80. Jinými slovy, metoda interpretuje bit prvního bajtu nejvyššího pořadí jako value bit znaménka. Aby se zajistilo, že je šestnáctkový řetězec správně interpretován jako kladné číslo, musí mít první číslice v value hodnotě nula. Například metoda interpretuje 0x80 jako zápornou hodnotu, ale interpretuje buď 0x080 nebo 0x0080 jako kladnou hodnotu. Následující příklad znázorňuje rozdíl mezi šestnáctkovými řetězci, které představují záporné a kladné hodnoty.

using System;
using System.Globalization;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      string[] hexStrings = { "80", "E293", "F9A2FF", "FFFFFFFF",
                              "080", "0E293", "0F9A2FF", "0FFFFFFFF",
                              "0080", "00E293", "00F9A2FF", "00FFFFFFFF" };
      BigInteger number = BigInteger.Zero;

      foreach (string hexString in hexStrings)
      {
         if (BigInteger.TryParse(hexString, NumberStyles.AllowHexSpecifier,
                                 null, out number))
            Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
         else
            Console.WriteLine("Cannot convert '{0}' to a BigInteger.", hexString);
      }
   }
}
// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
open System.Globalization
open System.Numerics

let hexStrings =
    [| "80"
       "E293"
       "F9A2FF"
       "FFFFFFFF"
       "080"
       "0E293"
       "0F9A2FF"
       "0FFFFFFFF"
       "0080"
       "00E293"
       "00F9A2FF"
       "00FFFFFFFF" |]

for hexString in hexStrings do
    match BigInteger.TryParse(hexString, NumberStyles.AllowHexSpecifier, null) with
    | true, number -> printfn $"Converted 0x{hexString} to {number}."
    | _ -> printfn $"Cannot convert '{hexString}' to a BigInteger."

// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
Imports System.Globalization
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim hexStrings() As String = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                                     "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                                     "0080", "00E293", "00F9A2FF", "00FFFFFFFF" }
      Dim number As BigInteger = BigInteger.Zero
      
      For Each hexString As String In hexStrings
         If BigInteger.TryParse(hexString, NumberStyles.AllowHexSpecifier, 
                                Nothing, number) Then
            Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
         Else
            Console.WriteLine("Cannot convert '{0}' to a BigInteger.", hexString)
         End If
      Next         
   End Sub
End Module
' The example displays the following output:
'       Converted 0x80 to -128.
'       Converted 0xE293 to -7533.
'       Converted 0xF9A2FF to -417025.
'       Converted 0xFFFFFFFF to -1.
'       Converted 0x080 to 128.
'       Converted 0x0E293 to 58003.
'       Converted 0x0F9A2FF to 16360191.
'       Converted 0x0FFFFFFFF to 4294967295.
'       Converted 0x0080 to 128.
'       Converted 0x00E293 to 58003.
'       Converted 0x00F9A2FF to 16360191.
'       Converted 0x00FFFFFFFF to 4294967295.

Parametr provider je IFormatProvider implementace. Jeho GetFormat metoda vrátí NumberFormatInfo objekt, který poskytuje informace specifické pro jazykovou verzi formátu value. 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