Teilen über


BigInteger.TryParse Methode

Definition

Versucht, die Zeichenfolgendarstellung einer Zahl in die BigInteger entsprechende Zahl zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

Überlädt

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

Versucht, die Zeichenfolgendarstellung einer Zahl in die BigInteger entsprechende Zahl zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

TryParse(ReadOnlySpan<Byte>, BigInteger)
TryParse(ReadOnlySpan<Char>, BigInteger)

Versucht, die Darstellung einer Zahl, die in der angegebenen schreibgeschützten Zeichenspanne enthalten ist, in dessen BigInteger Entsprechung zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

TryParse(String, BigInteger)

Versucht, die Zeichenfolgendarstellung einer Zahl in die BigInteger entsprechende Zahl zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, BigInteger)
TryParse(String, IFormatProvider, BigInteger)

Versucht, eine Zeichenfolge in einen Wert zu analysieren.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, BigInteger)
TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Versucht, die Zeichenfolgendarstellung einer Zahl in einem angegebenen Format und kulturspezifischen Format in das BigInteger entsprechende Format zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

TryParse(ReadOnlySpan<Char>, IFormatProvider, BigInteger)

Versucht, einen Bereich von Zeichen in einen Wert zu analysieren.

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

Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs

Versucht, die Zeichenfolgendarstellung einer Zahl in die BigInteger entsprechende Zahl zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Parameter

value
ReadOnlySpan<Char>

Die Darstellung einer Zahl als schreibgeschützter Bereich von Zeichen.

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Formatvorlagenelemente angibt, in valuedenen vorhanden sein kann. Ein typischer Wert, der angegeben werden soll, ist Integer.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu value.

result
BigInteger

Wenn diese Methode zurückgegeben wird, enthält sie die BigInteger Entsprechung mit der Zahl, die enthalten valueist, oder Zero wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der value Parameter ein leerer Zeichenbereich ist oder sich nicht in einem Format befindet, das kompatibel ist style. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true wenn value erfolgreich konvertiert wurde; andernfalls false.

Ausnahmen

style ist kein NumberStyles Wert.

-oder-

styleenthält das Attribut oder HexNumber die AllowHexSpecifier Kennzeichnung zusammen mit einem anderen Wert.

Hinweise

Diese Überladung ähnelt der Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Methode, mit der Ausnahme, dass keine Ausnahme ausgelöst wird, wenn die Konvertierung fehlschlägt. Diese Methode beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um zu testen FormatException , ob value ungültig ist und nicht erfolgreich analysiert werden kann.

Der style Parameter definiert die Formatvorlagenelemente (z. B. Leerzeichen oder ein positives oder negatives Vorzeichen), die im value Parameter zulässig sind, damit der Analysevorgang erfolgreich ausgeführt werden kann. Es muss eine Kombination aus Bitkennzeichnungen aus der NumberStyles Enumeration sein. Je nach Wert kann styleder value Parameter die folgenden Elemente enthalten:

[ws][][$Vorzeichen][Ziffern;]Ziffern[.fractional_digits][E[Zeichen]exponential_digits][ws]

Wenn der style Parameter enthält AllowHexSpecifier, kann der value Parameter die folgenden Elemente enthalten:

[ws]hexdigits[ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element Description
Ws Optionaler Leerraum. Leerzeichen können am Anfang value angezeigt werden, wenn style die NumberStyles.AllowLeadingWhite Kennzeichnung enthalten ist, oder am Ende, value wenn style die NumberStyles.AllowTrailingWhite Kennzeichnung enthalten ist.
$ Ein kulturspezifisches Währungssymbol. Seine Position wird value durch die CurrencyPositivePattern Eigenschaft des Objekts definiert, das NumberFormatInfo von der GetFormat Methode des provider Parameters zurückgegeben wird. Das Währungssymbol kann angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Kennzeichen enthalten value ist.
sign Ein optionales Zeichen. Das Zeichen kann am Anfang angezeigt value werden, wenn style das NumberStyles.AllowLeadingSign Kennzeichen enthalten ist, und es kann am Ende der value Kennzeichnung angezeigt werden, wenn style die NumberStyles.AllowTrailingSign Kennzeichnung enthalten ist. Klammern können verwendet value werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses Flag enthalten ist.
Ziffern Eine Sequenz von Ziffern von 0 bis 9.
, Ein kulturspezifisches Gruppentrennzeichen. Das Gruppentrennzeichen der durch sie angegebenen provider Kultur kann angezeigt werden value , wenn style die NumberStyles.AllowThousands Kennzeichnung enthalten ist.
. Ein kulturspezifisches Dezimalkommasymbol. Das Dezimalkommasymbol der durch diese Kultur angegebenen provider Kultur kann angezeigt werden value , wenn style die NumberStyles.AllowDecimalPoint Kennzeichnung enthalten ist.
fractional_digits Mindestens ein Vorkommen der Ziffer 0. Dezimalstellen können nur angezeigt werden value , wenn style die NumberStyles.AllowDecimalPoint Kennzeichnung enthalten ist.
E Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Schreibweise dargestellt wird. Der value Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthalten ist.
exponential_digits Eine Sequenz von Ziffern von 0 bis 9. Der value Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthalten ist.
hexdigits Eine Abfolge von hexadezimalen Ziffern von 0 bis f oder 0 bis F.

Hinweis

Alle endenden NUL-Zeichen s (U+0000) werden unabhängig vom Wert des style Arguments vom Analysevorgang ignoriert.

Nicht zusammengesetzte NumberStyles Werte Elemente, die zusätzlich zu Ziffern im Wert zulässig sind
None Nur Dezimalziffern.
AllowDecimalPoint Die Dezimalkomma (.) und fractional_digits Elemente. Fractional_digits darf jedoch nur aus einer oder mehreren 0 Ziffern bestehen, oder die Methode gibt zurückfalse.
AllowExponent Das Zeichen "e" oder "E", das exponentielle Notation angibt, zusammen mit exponential_digits. Wenn value eine Zahl in exponentieller Schreibweise dargestellt wird, kann sie keine Nicht-Null-Bruchkomponente aufweisen.
AllowLeadingWhite Das ws-Element am Anfang von value.
AllowTrailingWhite Das ws-Element am Ende von value.
AllowLeadingSign Das Zeichenelement vor Ziffern.
AllowTrailingSign Das Zeichenelement nach Ziffern.
AllowParentheses Das Zeichenelement in Form von Klammern, die den numerischen Wert einschließen.
AllowThousands Das Gruppentrennzeichen (,) -Element.
AllowCurrencySymbol Das Währungselement ($)
Currency Alle Elemente. value Eine hexadezimale Zahl oder eine Zahl in exponentieller Schreibweise kann jedoch nicht dargestellt werden.
Float Das ws-Element am Anfang oder Ende von value, Zeichen am Anfang von value, und das Dezimalkomma (.) Symbol. Der value Parameter kann auch exponentielle Notation verwenden.
Number Die Elemente ws, Zeichen, Gruppentrennzeichen (,) und Dezimalkomma (.).
Any Alle Elemente. value Eine hexadezimale Zahl kann jedoch nicht dargestellt werden.

Wenn das NumberStyles.AllowHexSpecifier Flag verwendet wird, value muss es sich um einen Hexadezimalwert handelt. Die einzigen anderen Flags, die style vorhanden sein können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles Aufzählung weist eine zusammengesetzte Formatvorlage auf, HexNumberdie beide Leerzeichen enthält.)

Der provider Parameter ist eine IFormatProvider Implementierung. Die GetFormat Methode gibt ein NumberFormatInfo Objekt zurück, das kulturspezifische Informationen zum Format von value. Der provider Parameter kann eine der folgenden Sein:

  • Ein CultureInfo Objekt, das die Kultur darstellt, die Formatierungsinformationen bereitstellt. Die GetFormat Methode gibt das NumberFormatInfo Objekt zurück, das numerische Formatierungsinformationen für diese Kultur bereitstellt.

  • Ein NumberFormatInfo Objekt, das numerische Formatierungsinformationen bereitstellt. (Seine Umsetzung GetFormat von nur zurückgibt.)

  • Ein benutzerdefiniertes IFormatProviderObjekt, das implementiert wird. Die GetFormat Methode instanziiert und gibt das Objekt zurück, das NumberFormatInfo Formatierungsinformationen bereitstellt.

Wenn provider ja null, wird das NumberFormatInfo Objekt für die aktuelle Kultur verwendet.

Weitere Informationen

Gilt für:

TryParse(ReadOnlySpan<Byte>, BigInteger)

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

Parameter

utf8Text
ReadOnlySpan<Byte>
result
BigInteger

Gibt zurück

Gilt für:

TryParse(ReadOnlySpan<Char>, BigInteger)

Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs

Versucht, die Darstellung einer Zahl, die in der angegebenen schreibgeschützten Zeichenspanne enthalten ist, in dessen BigInteger Entsprechung zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Parameter

value
ReadOnlySpan<Char>

Die Darstellung einer Zahl als schreibgeschützter Bereich von Zeichen.

result
BigInteger

Wenn diese Methode zurückgegeben wird, enthält sie die BigInteger Entsprechung der Zahl, die in valueoder Null (0) enthalten ist, wenn die Konvertierung fehlschlägt. Die Konvertierung schlägt fehl, wenn der value Parameter ein leerer Zeichenbereich ist oder nicht das richtige Format aufweist. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true wenn value erfolgreich konvertiert wurde; andernfalls false.

Weitere Informationen

Gilt für:

TryParse(String, BigInteger)

Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs

Versucht, die Zeichenfolgendarstellung einer Zahl in die BigInteger entsprechende Zahl zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Parameter

value
String

Die Zeichenfolgendarstellung einer Zahl.

result
BigInteger

Wenn diese Methode zurückgegeben wird, enthält sie die BigInteger Entsprechung der Zahl, die in valueoder Null (0) enthalten ist, wenn die Konvertierung fehlschlägt. Die Konvertierung schlägt fehl, wenn der value Parameter das richtige Format aufweist null oder nicht. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true wenn value erfolgreich konvertiert wurde; andernfalls false.

Ausnahmen

value ist null.

Beispiele

Im folgenden Beispiel wird die TryParse(String, BigInteger) Methode verwendet, um zwei BigInteger Objekte zu instanziieren. Wenn die Konvertierungen erfolgreich sind, multipliziert sie jedes Objekt mit einer anderen Zahl und ruft dann die Compare Methode auf, um die Beziehung zwischen den beiden Objekten zu bestimmen.

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.

Hinweise

Die TryParse(String, BigInteger) Methode ähnelt der Parse(String) Methode, mit der Ausnahme, dass keine Ausnahme ausgelöst wird, wenn die Konvertierung fehlschlägt. Diese Methode beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um zu testen FormatException , ob value ungültig ist und nicht erfolgreich analysiert werden kann.

Der value Parameter sollte die Zeichenfolgendarstellung einer Dezimalzahl in der folgenden Form sein:

[ws][Zeichen]Ziffern[ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element Description
Ws Optionaler Leerraum.
sign Ein optionales Zeichen. Gültige Zeichenzeichen werden durch die NumberFormatInfo.NegativeSign Eigenschaften NumberFormatInfo.PositiveSign der aktuellen Kultur bestimmt.
Ziffern Eine Sequenz von Dezimalziffern zwischen 0 und 9.

Hinweis

Die durch den value Parameter angegebene Zeichenfolge darf keine Gruppentrennzeichen oder Dezimaltrennzeichen enthalten, und es kann kein Dezimalteil vorhanden sein.

Der value Parameter wird mithilfe der NumberStyles.Integer Formatvorlage interpretiert. Zusätzlich zu den Dezimalziffern sind nur führende und nachfolgende Leerzeichen mit einem vorangestellten Zeichen zulässig. Rufen Sie die Methode aufTryParse(String, NumberStyles, IFormatProvider, BigInteger), um die Formatelemente explizit mit den kulturspezifischen Formatierungsinformationen zu definieren, die valuevorhanden sein können.

Der value Parameter wird mithilfe der Formatierungsinformationen in einem NumberFormatInfo Objekt für die aktuelle Kultur analysiert. Weitere Informationen finden Sie unter NumberFormatInfo.CurrentInfo.

Diese Überladung interpretiert alle Ziffern im value Parameter als Dezimalziffern. Rufen Sie stattdessen die TryParse(String, NumberStyles, IFormatProvider, BigInteger) Überladung auf, um die Zeichenfolgendarstellung einer Hexadezimalzahl zu analysieren.

Weitere Informationen

Gilt für:

TryParse(ReadOnlySpan<Byte>, IFormatProvider, BigInteger)

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

Parameter

utf8Text
ReadOnlySpan<Byte>
provider
IFormatProvider
result
BigInteger

Gibt zurück

Gilt für:

TryParse(String, IFormatProvider, BigInteger)

Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs

Versucht, eine Zeichenfolge in einen Wert zu analysieren.

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

Parameter

s
String

Die zu analysierende Zeichenfolge.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s.

result
BigInteger

Wenn diese Methode zurückgegeben wird, enthält das Ergebnis einer erfolgreichen Analyse oder eines nicht definierten Werts s für fehler.

Gibt zurück

truewenn s erfolgreich analysiert wurde; andernfalls . false

Gilt für:

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

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, 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<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out System.Numerics.BigInteger result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * BigInteger -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As BigInteger) As Boolean

Parameter

utf8Text
ReadOnlySpan<Byte>
style
NumberStyles
provider
IFormatProvider
result
BigInteger

Gibt zurück

Gilt für:

TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs

Versucht, die Zeichenfolgendarstellung einer Zahl in einem angegebenen Format und kulturspezifischen Format in das BigInteger entsprechende Format zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Parameter

value
String

Die Zeichenfolgendarstellung einer Zahl. Die Zeichenfolge wird mithilfe der durch style.

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Formatvorlagenelemente angibt, in valuedenen vorhanden sein kann. Ein typischer Wert, der angegeben werden soll, ist Integer.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu value.

result
BigInteger

Wenn diese Methode zurückgegeben wird, enthält sie die BigInteger Entsprechung mit der Zahl, die enthalten valueist, oder Zero wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn sich der value Parameter in einem Format befindet null , das kompatibel styleist. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true wenn der value Parameter erfolgreich konvertiert wurde; andernfalls false.

Ausnahmen

style ist kein NumberStyles Wert.

-oder-

styleenthält das Attribut oder HexNumber die AllowHexSpecifier Kennzeichnung zusammen mit einem anderen Wert.

Beispiele

Im folgenden Beispiel werden einige Aufrufe der TryParse(String, NumberStyles, IFormatProvider, BigInteger) Methode mithilfe verschiedener Wertekombinationen für die Und-Parameter styleprovider ausgeführt.

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.

Eine Reihe der einzelnen Aufrufe der TryParse(String, NumberStyles, IFormatProvider, BigInteger) Methode übergeben eine Instanz der folgenden BigIntegerFormatProvider Klasse, die eine Tilde (~) als negatives Zeichen definiert.

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

Hinweise

Die TryParse(String, NumberStyles, IFormatProvider, BigInteger) Methode ähnelt der Parse(String, NumberStyles, IFormatProvider) Methode, mit der Ausnahme, dass keine Ausnahme ausgelöst wird, wenn die Konvertierung fehlschlägt. Diese Methode beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um zu testen FormatException , ob value ungültig ist und nicht erfolgreich analysiert werden kann.

Der style Parameter definiert die Formatvorlagenelemente (z. B. Leerzeichen oder ein positives oder negatives Vorzeichen), die im value Parameter zulässig sind, damit der Analysevorgang erfolgreich ausgeführt werden kann. Es muss eine Kombination aus Bitkennzeichnungen aus der NumberStyles Enumeration sein. Je nach Wert kann styleder value Parameter die folgenden Elemente enthalten:

[ws][][$Vorzeichen][Ziffern;]Ziffern[.fractional_digits][E[Zeichen]exponential_digits][ws]

Wenn der style Parameter enthält AllowHexSpecifier, kann der value Parameter die folgenden Elemente enthalten:

[ws]hexdigits[ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element Description
Ws Optionaler Leerraum. Leerzeichen können am Anfang value angezeigt werden, wenn style die NumberStyles.AllowLeadingWhite Kennzeichnung enthalten ist, oder am Ende, value wenn style die NumberStyles.AllowTrailingWhite Kennzeichnung enthalten ist.
$ Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die CurrencyPositivePattern Eigenschaft des Objekts definiert, das NumberFormatInfo von der GetFormat Methode des provider Parameters zurückgegeben wird. Das Währungssymbol kann angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Kennzeichen enthalten value ist.
sign Ein optionales Zeichen. Das Zeichen kann am Anfang angezeigt value werden, wenn style das NumberStyles.AllowLeadingSign Kennzeichen enthalten ist, und es kann am Ende der value Kennzeichnung angezeigt werden, wenn style die NumberStyles.AllowTrailingSign Kennzeichnung enthalten ist. Klammern können verwendet value werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses Flag enthalten ist.
Ziffern Eine Sequenz von Ziffern von 0 bis 9.
, Ein kulturspezifisches Gruppentrennzeichen. Das Gruppentrennzeichen der durch sie angegebenen provider Kultur kann angezeigt werden value , wenn style die NumberStyles.AllowThousands Kennzeichnung enthalten ist.
. Ein kulturspezifisches Dezimalkommasymbol. Das Dezimalkommasymbol der durch diese Kultur angegebenen provider Kultur kann angezeigt werden value , wenn style die NumberStyles.AllowDecimalPoint Kennzeichnung enthalten ist.
fractional_digits Mindestens ein Vorkommen der Ziffer 0. Dezimalstellen können nur angezeigt werden value , wenn style die NumberStyles.AllowDecimalPoint Kennzeichnung enthalten ist.
E Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Schreibweise dargestellt wird. Der value Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthalten ist.
exponential_digits Eine Sequenz von Ziffern von 0 bis 9. Der value Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthalten ist.
hexdigits Eine Abfolge von hexadezimalen Ziffern von 0 bis f oder 0 bis F.

Hinweis

Alle endenden NUL-Zeichen s (U+0000) werden unabhängig vom Wert des style Arguments vom Analysevorgang ignoriert.

Eine Zeichenfolge mit dezimalen Ziffern (die der NumberStyles.None Kennzeichnung entspricht) analysiert immer erfolgreich. Die meisten der verbleibenden NumberStyles Elemente steuern Elemente, die vorhanden sein können, aber nicht vorhanden sein müssen, in dieser Eingabezeichenfolge. In der folgenden Tabelle wird angegeben, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die möglicherweise valuevorhanden sind.

Nicht zusammengesetzte NumberStyles Werte Elemente, die zusätzlich zu Ziffern im Wert zulässig sind
None Nur Dezimalziffern.
AllowDecimalPoint Die Dezimalkomma (.) und fractional_digits Elemente. Fractional_digits darf jedoch nur aus einer oder mehreren 0 Ziffern bestehen, oder die Methode gibt zurückfalse.
AllowExponent Das Zeichen "e" oder "E", das exponentielle Notation angibt, zusammen mit exponential_digits. Wenn value eine Zahl in exponentieller Schreibweise dargestellt wird, kann sie keine Nicht-Null-Bruchkomponente aufweisen.
AllowLeadingWhite Das ws-Element am Anfang von value.
AllowTrailingWhite Das ws-Element am Ende von value.
AllowLeadingSign Das Zeichenelement vor Ziffern.
AllowTrailingSign Das Zeichenelement nach Ziffern.
AllowParentheses Das Zeichenelement in Form von Klammern, die den numerischen Wert einschließen.
AllowThousands Das Gruppentrennzeichen (,) -Element.
AllowCurrencySymbol Das Währungselement ($)
Currency Alle Elemente. value Eine hexadezimale Zahl oder eine Zahl in exponentieller Schreibweise kann jedoch nicht dargestellt werden.
Float Das ws-Element am Anfang oder Ende von value, Zeichen am Anfang von value, und das Dezimalkomma (.) Symbol. Der value Parameter kann auch exponentielle Notation verwenden.
Number Die Elemente ws, Zeichen, Gruppentrennzeichen (,) und Dezimalkomma (.).
Any Alle Elemente. value Eine hexadezimale Zahl kann jedoch nicht dargestellt werden.

Von Bedeutung

Wenn Sie die TryParse Methode verwenden, um die Zeichenfolgendarstellung eines BigInteger Von der ToString Methode ausgegebenen Werts zu runden, sollten Sie die BigInteger.ToString(String) Methode mit dem Formatbezeichner "R" verwenden, um die Zeichenfolgendarstellung des BigInteger Werts zu generieren. Andernfalls wird die Zeichenfolgendarstellung der BigInteger 50 wichtigsten Ziffern des ursprünglichen Werts beibehalten, und Die Daten gehen möglicherweise verloren, wenn Sie die TryParse Methode zum Wiederherstellen des BigInteger Werts verwenden.

Wenn das NumberStyles.AllowHexSpecifier Flag verwendet wird, value muss es sich um einen Hexadezimalwert handelt. Die einzigen anderen Flags, die style vorhanden sein können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles Aufzählung weist eine zusammengesetzte Formatvorlage auf, HexNumberdie beide Leerzeichen enthält.)

Hinweis

Wenn value es sich um die Zeichenfolgendarstellung einer hexadezimalen Zahl handelt, kann keine Dekoration (z 0x . B. oder &h) vorangestellt werden, die sie als hexadezimale Zahl unterscheidet. Dies führt dazu, dass die Konvertierung fehlschlägt.

Wenn value es sich um eine hexadezimale Zeichenfolge handelt, interpretiert value die Methode als negative Zahl, die TryParse(String, NumberStyles, IFormatProvider, BigInteger) mithilfe der Zweidezimaldarstellung gespeichert wird, wenn die ersten beiden Hexadezimalziffern größer oder gleich 0x80sind. Mit anderen Worten interpretiert die Methode das Bit der höchsten Reihenfolge des ersten Bytes value als Zeichenbit. Um sicherzustellen, dass eine hexadezimale Zeichenfolge korrekt als positive Zahl interpretiert wird, muss die erste Ziffer value einen Wert von Null aufweisen. Die Methode interpretiert 0x80 z. B. einen negativen Wert, interpretiert aber entweder 0x080 oder 0x0080 als positiver Wert. Im folgenden Beispiel wird der Unterschied zwischen hexadezimalen Zeichenfolgen veranschaulicht, die negative und positive Werte darstellen.

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.

Der provider Parameter ist eine IFormatProvider Implementierung. Die GetFormat Methode gibt ein NumberFormatInfo Objekt zurück, das kulturspezifische Informationen zum Format von value. Der provider Parameter kann eine der folgenden Sein:

  • Ein CultureInfo Objekt, das die Kultur darstellt, die Formatierungsinformationen bereitstellt. Die GetFormat Methode gibt das NumberFormatInfo Objekt zurück, das numerische Formatierungsinformationen für diese Kultur bereitstellt.

  • Ein NumberFormatInfo Objekt, das numerische Formatierungsinformationen bereitstellt. (Seine Umsetzung GetFormat von nur zurückgibt.)

  • Ein benutzerdefiniertes IFormatProviderObjekt, das implementiert wird. Die GetFormat Methode instanziiert und gibt das Objekt zurück, das NumberFormatInfo Formatierungsinformationen bereitstellt.

Wenn provider ja null, wird das NumberFormatInfo Objekt für die aktuelle Kultur verwendet.

Weitere Informationen

Gilt für:

TryParse(ReadOnlySpan<Char>, IFormatProvider, BigInteger)

Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs
Quelle:
BigInteger.cs

Versucht, einen Bereich von Zeichen in einen Wert zu analysieren.

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

Parameter

s
ReadOnlySpan<Char>

Die Spanne der zu analysierenden Zeichen.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s.

result
BigInteger

Wenn diese Methode zurückgegeben wird, enthält das Ergebnis der erfolgreichen Analyse oder eines nicht definierten Werts sfür fehler.

Gibt zurück

truewenn s erfolgreich analysiert wurde; andernfalls . false

Gilt für: