BigInteger.TryParse Methode

Definitie

Hiermee wordt geprobeerd de tekenreeksweergave van een getal te converteren naar BigInteger het equivalent ervan en wordt een waarde geretourneerd die aangeeft of de conversie is geslaagd.

Overloads

Name Description
TryParse(ReadOnlySpan<Char>, BigInteger)

Hiermee wordt geprobeerd de weergave van een getal in het opgegeven tekenbereik met het kenmerk Alleen-lezen te converteren naar het BigInteger equivalent en wordt een waarde geretourneerd die aangeeft of de conversie is geslaagd.

TryParse(String, BigInteger)

Hiermee wordt geprobeerd de tekenreeksweergave van een getal te converteren naar BigInteger het equivalent ervan en wordt een waarde geretourneerd die aangeeft of de conversie is geslaagd.

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

Hiermee wordt geprobeerd de tekenreeksweergave van een getal te converteren naar BigInteger het equivalent ervan en wordt een waarde geretourneerd die aangeeft of de conversie is geslaagd.

TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Probeert de tekenreeksweergave van een getal in een opgegeven stijl en cultuurspecifieke notatie te converteren naar het BigInteger equivalent en retourneert een waarde die aangeeft of de conversie is geslaagd.

TryParse(ReadOnlySpan<Char>, BigInteger)

Hiermee wordt geprobeerd de weergave van een getal in het opgegeven tekenbereik met het kenmerk Alleen-lezen te converteren naar het BigInteger equivalent en wordt een waarde geretourneerd die aangeeft of de conversie is geslaagd.

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

Parameters

value
ReadOnlySpan<Char>

De weergave van een getal als een alleen-lezen reeks tekens.

result
BigInteger

Wanneer deze methode retourneert, bevat het BigInteger equivalent van het getal in value, of nul (0) als de conversie mislukt. De conversie mislukt als de value parameter een leeg tekenbereik is of niet de juiste indeling heeft. Deze parameter wordt niet-geïnitialiseerd doorgegeven.

Retouren

trueals value deze is geconverteerd; anders. false

Zie ook

Van toepassing op

TryParse(String, BigInteger)

Hiermee wordt geprobeerd de tekenreeksweergave van een getal te converteren naar BigInteger het equivalent ervan en wordt een waarde geretourneerd die aangeeft of de conversie is geslaagd.

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);
static member TryParse : string * BigInteger -> bool
Public Shared Function TryParse (value As String, ByRef result As BigInteger) As Boolean

Parameters

value
String

De tekenreeksweergave van een getal.

result
BigInteger

Wanneer deze methode retourneert, bevat het BigInteger equivalent van het getal in value, of nul (0) als de conversie mislukt. De conversie mislukt als de value parameter wel null of niet de juiste indeling heeft. Deze parameter wordt niet-geïnitialiseerd doorgegeven.

Retouren

trueals value deze is geconverteerd; anders. false

Uitzonderingen

value is null.

Voorbeelden

In het volgende voorbeeld wordt de TryParse(String, BigInteger) methode gebruikt om twee BigInteger objecten te instantiëren. Als de conversies slaagt, vermenigvuldigt het elk object met een ander getal en roept u vervolgens de Compare methode aan om de relatie tussen de twee objecten te bepalen.

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.

Opmerkingen

De TryParse(String, BigInteger) methode is net als de Parse(String) methode, behalve dat deze geen uitzondering genereert als de conversie mislukt. Met deze methode hoeft u geen uitzonderingsafhandeling te gebruiken om te testen of value deze FormatException ongeldig is en niet kan worden geparseerd.

De value parameter moet de tekenreeksweergave zijn van een decimaal getal in de volgende vorm:

[ws][teken]digits[ws]

Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.

Element Beschrijving
Ws Optionele witruimte.
ondertekenen Een optioneel teken. Geldige tekens worden bepaald door de NumberFormatInfo.NegativeSign en NumberFormatInfo.PositiveSign eigenschappen van de huidige cultuur.
Cijfers Een reeks decimale cijfers tussen 0 en 9.

Note

De tekenreeks die door de value parameter is opgegeven, kan geen groepsscheidingstekens of decimaalteken bevatten en kan geen decimaal gedeelte bevatten.

De value parameter wordt geïnterpreteerd met behulp van de NumberStyles.Integer stijl. Naast de decimale cijfers zijn alleen voorloop- en volgspaties met een voorloopteken toegestaan. Als u de stijlelementen expliciet wilt definiëren met de cultuurspecifieke opmaakinformatie die aanwezig kan zijn in value, roept u de TryParse(String, NumberStyles, IFormatProvider, BigInteger) methode aan.

De value parameter wordt geparseerd met behulp van de opmaakgegevens in een NumberFormatInfo object voor de huidige cultuur. Zie NumberFormatInfo.CurrentInfo voor meer informatie.

Deze overbelasting interpreteert alle cijfers in de value parameter als decimale cijfers. Als u de tekenreeksweergave van een hexadecimaal getal wilt parseren, roept u in plaats daarvan de TryParse(String, NumberStyles, IFormatProvider, BigInteger) overbelasting aan.

Zie ook

Van toepassing op

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

Hiermee wordt geprobeerd de tekenreeksweergave van een getal te converteren naar BigInteger het equivalent ervan en wordt een waarde geretourneerd die aangeeft of de conversie is geslaagd.

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

Parameters

value
ReadOnlySpan<Char>

De weergave van een getal als een alleen-lezen reeks tekens.

style
NumberStyles

Een bitsgewijze combinatie van opsommingswaarden die de stijlelementen aangeeft die aanwezig kunnen zijn in value. Een typische waarde die moet worden opgegeven, is Integer.

provider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie over valuelevert.

result
BigInteger

Wanneer deze methode wordt geretourneerd, bevat dit het BigInteger equivalent van het getal dat is opgenomen in value, of Zero als de conversie is mislukt. De conversie mislukt als de value parameter een leeg tekenbereik is of geen indeling heeft die compatibel is met style. Deze parameter wordt niet-geïnitialiseerd doorgegeven.

Retouren

trueals value deze is geconverteerd; anders. false

Uitzonderingen

style is geen NumberStyles waarde.

– of –

style bevat de AllowHexSpecifier of HexNumber vlag samen met een andere waarde.

Opmerkingen

Deze overbelasting lijkt op de Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) methode, behalve dat deze geen uitzondering genereert als de conversie mislukt. Met deze methode hoeft u geen uitzonderingsafhandeling te gebruiken om te testen of value deze FormatException ongeldig is en niet kan worden geparseerd.

De style parameter definieert de stijlelementen (zoals witruimte of een positief of negatief teken) die zijn toegestaan in de value parameter om de parseringsbewerking te laten slagen. Dit moet een combinatie zijn van bitvlagmen uit de NumberStyles opsomming. Afhankelijk van de waarde van style, kan de value parameter de volgende elementen bevatten:

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

Als de style parameter bevat AllowHexSpecifier, kan de value parameter de volgende elementen bevatten:

[ws]hexdigits[ws]

Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.

Element Beschrijving
Ws Optionele witruimte. Witruimte kan worden weergegeven aan het begin van value als deze de NumberStyles.AllowLeadingWhite vlag bevat of aan het einde van value de styleNumberStyles.AllowTrailingWhitestyle vlag.
$ Een cultuurspecifiek valutasymbool. De positie in value wordt gedefinieerd door de CurrencyPositivePattern eigenschap van het NumberFormatInfo object dat wordt geretourneerd door de GetFormat methode van de provider parameter. Het valutasymbool kan worden weergegeven value als style deze de NumberStyles.AllowCurrencySymbol vlag bevat.
ondertekenen Een optioneel teken. Het teken kan aan het begin van value de vlag worden weergegeven als style deze de NumberStyles.AllowLeadingSign vlag bevat en kan worden weergegeven aan het einde van value de vlag.styleNumberStyles.AllowTrailingSign Haakjes kunnen worden gebruikt value om een negatieve waarde aan te geven als style deze de NumberStyles.AllowParentheses vlag bevat.
Cijfers Een reeks cijfers van 0 tot en met 9.
, Een cultuurspecifiek groepsscheidingsteken. Het groepsscheidingsteken van de cultuur die is opgegeven door provider , kan worden weergegeven als valuestyle de NumberStyles.AllowThousands vlag wordt opgenomen.
. Een cultuurspecifiek decimaalteken. Het decimaalteken van de cultuur die is opgegeven door provider , kan worden weergegeven value als style de NumberStyles.AllowDecimalPoint vlag wordt opgenomen.
fractional_digits Een of meer exemplaren van het cijfer 0. Fractionele cijfers kunnen alleen worden weergegeven als valuestyle de NumberStyles.AllowDecimalPoint vlag wordt opgenomen.
E Het teken "e" of "E", dat aangeeft dat de waarde wordt weergegeven in exponentiële (wetenschappelijke) notatie. De value parameter kan een getal in exponentiële notatie vertegenwoordigen als style deze de NumberStyles.AllowExponent vlag bevat.
exponential_digits Een reeks cijfers van 0 tot en met 9. De value parameter kan een getal in exponentiële notatie vertegenwoordigen als style deze de NumberStyles.AllowExponent vlag bevat.
hexdigits Een reeks hexadecimale cijfers van 0 tot en met f of 0 tot en met F.

Note

Alle nultekens (U+0000) s worden genegeerd door de parseringsbewerking, ongeacht de waarde van het style argument.

Niet-samengestelde NumberStyles waarden Elementen die naast cijfers in waarde zijn toegestaan
None Alleen decimale cijfers.
AllowDecimalPoint De decimale punt (.) en fractional_digits elementen. Fractional_digits mag echter slechts uit één of meer cijfers bestaan, of de methode retourneert false.
AllowExponent Het teken "e" of "E", dat exponentiële notatie aangeeft, samen met exponential_digits. Als value een getal in exponentiële notatie aangeeft, kan het geen niet-nul, fractioneel onderdeel hebben.
AllowLeadingWhite Het ws-element aan het begin van value.
AllowTrailingWhite Het ws-element aan het einde van value.
AllowLeadingSign Het tekenelement vóór cijfers.
AllowTrailingSign Het tekenelement na cijfers.
AllowParentheses Het tekenelement in de vorm van haakjes tussen de numerieke waarde.
AllowThousands Het groepsscheidingsteken (,) element.
AllowCurrencySymbol Het valutaelement ($).
Currency Alle elementen. value Kan echter geen hexadecimaal getal of een getal in exponentiële notatie vertegenwoordigen.
Float Het ws-element aan het begin of einde van value, teken aan het begin van valueen het decimaalteken (.). De value parameter kan ook exponentiële notatie gebruiken.
Number De elementen ws, teken, groepsscheidingsteken (,) en decimaalteken (.).
Any Alle elementen. value Kan echter geen hexadecimaal getal vertegenwoordigen.

Als de NumberStyles.AllowHexSpecifier vlag wordt gebruikt, value moet dit een hexadecimale waarde zijn. De enige andere vlaggen die aanwezig kunnen zijn, style zijn NumberStyles.AllowLeadingWhite en NumberStyles.AllowTrailingWhite. (De NumberStyles opsomming heeft een samengestelde stijl, HexNumberdie beide witruimtevlagmen bevat.)

De provider parameter is een IFormatProvider implementatie. De GetFormat methode retourneert een NumberFormatInfo object dat cultuurspecifieke informatie biedt over de indeling van value. De provider parameter kan een van de volgende zijn:

Als provider dat het is null, wordt het NumberFormatInfo object voor de huidige cultuur gebruikt.

Zie ook

Van toepassing op

TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Probeert de tekenreeksweergave van een getal in een opgegeven stijl en cultuurspecifieke notatie te converteren naar het BigInteger equivalent en retourneert een waarde die aangeeft of de conversie is geslaagd.

public:
 static bool TryParse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::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

Parameters

value
String

De tekenreeksweergave van een getal. De tekenreeks wordt geïnterpreteerd met behulp van de stijl die is opgegeven door style.

style
NumberStyles

Een bitsgewijze combinatie van opsommingswaarden die de stijlelementen aangeeft die aanwezig kunnen zijn in value. Een typische waarde die moet worden opgegeven, is Integer.

provider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie over valuelevert.

result
BigInteger

Wanneer deze methode wordt geretourneerd, bevat dit het BigInteger equivalent van het getal dat is opgenomen in value, of Zero als de conversie is mislukt. De conversie mislukt als de value parameter wel null of niet een indeling heeft die compatibel is met style. Deze parameter wordt niet-geïnitialiseerd doorgegeven.

Retouren

trueals de value parameter is geconverteerd; anders. false

Uitzonderingen

style is geen NumberStyles waarde.

– of –

style bevat de AllowHexSpecifier of HexNumber vlag samen met een andere waarde.

Voorbeelden

In het volgende voorbeeld worden enkele aanroepen naar de TryParse(String, NumberStyles, IFormatProvider, BigInteger) methode uitgevoerd met behulp van verschillende combinaties van waarden voor de style en provider parameters.

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.

Een aantal afzonderlijke aanroepen naar de TryParse(String, NumberStyles, IFormatProvider, BigInteger) methode geeft een exemplaar van de volgende BigIntegerFormatProvider klasse door, waarmee een tilde (~) wordt gedefinieerd als het negatieve teken.

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

Opmerkingen

De TryParse(String, NumberStyles, IFormatProvider, BigInteger) methode is net als de Parse(String, NumberStyles, IFormatProvider) methode, behalve dat deze geen uitzondering genereert als de conversie mislukt. Met deze methode hoeft u geen uitzonderingsafhandeling te gebruiken om te testen of value deze FormatException ongeldig is en niet kan worden geparseerd.

De style parameter definieert de stijlelementen (zoals witruimte of een positief of negatief teken) die zijn toegestaan in de value parameter om de parseringsbewerking te laten slagen. Dit moet een combinatie zijn van bitvlagmen uit de NumberStyles opsomming. Afhankelijk van de waarde van style, kan de value parameter de volgende elementen bevatten:

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

Als de style parameter bevat AllowHexSpecifier, kan de value parameter de volgende elementen bevatten:

[ws]hexdigits[ws]

Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.

Element Beschrijving
Ws Optionele witruimte. Witruimte kan worden weergegeven aan het begin van value als deze de NumberStyles.AllowLeadingWhite vlag bevat of aan het einde van value de styleNumberStyles.AllowTrailingWhitestyle vlag.
$ Een cultuurspecifiek valutasymbool. De positie in de tekenreeks wordt gedefinieerd door de CurrencyPositivePattern eigenschap van het NumberFormatInfo object dat wordt geretourneerd door de GetFormat methode van de provider parameter. Het valutasymbool kan worden weergegeven value als style deze de NumberStyles.AllowCurrencySymbol vlag bevat.
ondertekenen Een optioneel teken. Het teken kan aan het begin van value de vlag worden weergegeven als style deze de NumberStyles.AllowLeadingSign vlag bevat en kan worden weergegeven aan het einde van value de vlag.styleNumberStyles.AllowTrailingSign Haakjes kunnen worden gebruikt value om een negatieve waarde aan te geven als style deze de NumberStyles.AllowParentheses vlag bevat.
Cijfers Een reeks cijfers van 0 tot en met 9.
, Een cultuurspecifiek groepsscheidingsteken. Het groepsscheidingsteken van de cultuur die is opgegeven door provider , kan worden weergegeven als valuestyle de NumberStyles.AllowThousands vlag wordt opgenomen.
. Een cultuurspecifiek decimaalteken. Het decimaalteken van de cultuur die is opgegeven door provider , kan worden weergegeven value als style de NumberStyles.AllowDecimalPoint vlag wordt opgenomen.
fractional_digits Een of meer exemplaren van het cijfer 0. Fractionele cijfers kunnen alleen worden weergegeven als valuestyle de NumberStyles.AllowDecimalPoint vlag wordt opgenomen.
E Het teken "e" of "E", dat aangeeft dat de waarde wordt weergegeven in exponentiële (wetenschappelijke) notatie. De value parameter kan een getal in exponentiële notatie vertegenwoordigen als style deze de NumberStyles.AllowExponent vlag bevat.
exponential_digits Een reeks cijfers van 0 tot en met 9. De value parameter kan een getal in exponentiële notatie vertegenwoordigen als style deze de NumberStyles.AllowExponent vlag bevat.
hexdigits Een reeks hexadecimale cijfers van 0 tot en met f of 0 tot en met F.

Note

Alle nultekens (U+0000) s worden genegeerd door de parseringsbewerking, ongeacht de waarde van het style argument.

Een tekenreeks met alleen decimale cijfers (die overeenkomt met de NumberStyles.None vlag) parseert altijd met succes. De meeste resterende NumberStyles leden bepalen elementen die mogelijk aanwezig zijn, maar die niet aanwezig zijn, in deze invoertekenreeks. De volgende tabel geeft aan hoe afzonderlijke NumberStyles leden van invloed zijn op de elementen die aanwezig kunnen zijn in value.

Niet-samengestelde NumberStyles waarden Elementen die naast cijfers in waarde zijn toegestaan
None Alleen decimale cijfers.
AllowDecimalPoint De decimale punt (.) en fractional_digits elementen. Fractional_digits mag echter slechts uit één of meer cijfers bestaan, of de methode retourneert false.
AllowExponent Het teken "e" of "E", dat exponentiële notatie aangeeft, samen met exponential_digits. Als value een getal in exponentiële notatie aangeeft, kan het geen niet-nul, fractioneel onderdeel hebben.
AllowLeadingWhite Het ws-element aan het begin van value.
AllowTrailingWhite Het ws-element aan het einde van value.
AllowLeadingSign Het tekenelement vóór cijfers.
AllowTrailingSign Het tekenelement na cijfers.
AllowParentheses Het tekenelement in de vorm van haakjes tussen de numerieke waarde.
AllowThousands Het groepsscheidingsteken (,) element.
AllowCurrencySymbol Het valutaelement ($).
Currency Alle elementen. value Kan echter geen hexadecimaal getal of een getal in exponentiële notatie vertegenwoordigen.
Float Het ws-element aan het begin of einde van value, teken aan het begin van valueen het decimaalteken (.). De value parameter kan ook exponentiële notatie gebruiken.
Number De elementen ws, teken, groepsscheidingsteken (,) en decimaalteken (.).
Any Alle elementen. value Kan echter geen hexadecimaal getal vertegenwoordigen.

Important

Als u de TryParse methode gebruikt om de tekenreeksweergave te afronden van een BigInteger waarde die door de ToString methode is uitgevoerd, moet u de BigInteger.ToString(String) methode gebruiken met de notatie 'R' om de tekenreeksweergave van de BigInteger waarde te genereren. Anders blijft de tekenreeksweergave van de BigInteger 50 belangrijkste cijfers van de oorspronkelijke waarde behouden en kunnen gegevens verloren gaan wanneer u de TryParse methode gebruikt om de BigInteger waarde te herstellen.

Als de NumberStyles.AllowHexSpecifier vlag wordt gebruikt, value moet dit een hexadecimale waarde zijn. De enige andere vlaggen die aanwezig kunnen zijn, style zijn NumberStyles.AllowLeadingWhite en NumberStyles.AllowTrailingWhite. (De NumberStyles opsomming heeft een samengestelde stijl, HexNumberdie beide witruimtevlagmen bevat.)

Note

Als value dit de tekenreeksweergave is van een hexadecimaal getal, kan het niet worden voorafgegaan door een decoratie (zoals 0x of &h) die deze onderscheidt als een hexadecimaal getal. Dit zorgt ervoor dat de conversie mislukt.

Als value een hexadecimale tekenreeks is, interpreteert value de TryParse(String, NumberStyles, IFormatProvider, BigInteger) methode als een negatief getal dat is opgeslagen met behulp van de complementweergave van twee als de eerste twee hexadecimale cijfers groter zijn dan of gelijk zijn aan 0x80. Met andere woorden, de methode interpreteert de hoogste volgorde bit van de eerste byte in value als de teken-bit. Om ervoor te zorgen dat een hexadecimale tekenreeks correct wordt geïnterpreteerd als een positief getal, moet het eerste cijfer een value waarde van nul hebben. De methode interpreteert 0x80 bijvoorbeeld als een negatieve waarde, maar interpreteert een 0x080 of 0x0080 een positieve waarde. In het volgende voorbeeld ziet u het verschil tussen hexadecimale tekenreeksen die negatieve en positieve waarden vertegenwoordigen.

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.

De provider parameter is een IFormatProvider implementatie. De GetFormat methode retourneert een NumberFormatInfo object dat cultuurspecifieke informatie biedt over de indeling van value. De provider parameter kan een van de volgende zijn:

Als provider dat het is null, wordt het NumberFormatInfo object voor de huidige cultuur gebruikt.

Zie ook

Van toepassing op