Bagikan melalui


BigInteger.TryParse Metode

Definisi

Mencoba mengonversi representasi string dari angka menjadi BigInteger setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

Overload

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

Mencoba mengonversi representasi string dari angka menjadi BigInteger setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

TryParse(String, IFormatProvider, BigInteger)

Mencoba mengurai string ke dalam nilai.

TryParse(ReadOnlySpan<Char>, IFormatProvider, BigInteger)

Mencoba mengurai rentang karakter menjadi nilai.

TryParse(String, BigInteger)

Mencoba mengonversi representasi string dari angka menjadi BigInteger setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

TryParse(ReadOnlySpan<Char>, BigInteger)

Mencoba mengonversi representasi angka yang terkandung dalam rentang karakter baca-saja yang ditentukan, menjadi BigInteger setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Mencoba mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke BigInteger yang setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mencoba mengonversi representasi string dari angka menjadi BigInteger setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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

Parameter

value
ReadOnlySpan<Char>

Representasi angka sebagai rentang karakter baca-saja.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di value. Nilai umum yang ditentukan adalah Integer.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang value.

result
BigInteger

Ketika metode ini kembali, berisi yang BigInteger setara dengan angka yang terkandung dalam value, atau Zero jika konversi gagal. Konversi gagal jika value parameter adalah rentang karakter kosong atau tidak dalam format yang sesuai dengan style. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true jika value berhasil dikonversi; jika tidak, false.

Pengecualian

style bukan nilai NumberStyles .

-atau-

style AllowHexSpecifier menyertakan bendera atau HexNumber bersama dengan nilai lain.

Keterangan

Kelebihan beban ini seperti Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) metode , kecuali bahwa itu tidak melemparkan pengecualian jika konversi gagal. Metode ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk FormatException menguji jika value tidak valid dan tidak berhasil diurai.

Parameter style menentukan elemen gaya (seperti spasi kosong atau tanda positif atau negatif) yang diizinkan dalam value parameter agar operasi penguraian berhasil. Ini harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Bergantung pada nilai style, value parameter dapat mencakup elemen berikut:

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

style Jika parameter menyertakan AllowHexSpecifier, value parameter dapat menyertakan elemen berikut:

[ws] hexdigits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingWhite bendera, atau di akhir value jika style menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya didefinisikan value oleh CurrencyPositivePattern properti objek yang NumberFormatInfo dikembalikan oleh GetFormat metode provider parameter . Simbol mata uang dapat muncul jika valuestyle menyertakan NumberStyles.AllowCurrencySymbol bendera.
sign Tanda opsional. Tanda dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan value untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera.
Digit Urutan digit dari 0 hingga 9.
, Pemisah grup khusus budaya. Pemisah grup budaya yang ditentukan oleh provider dapat muncul jika valuestyle menyertakan NumberStyles.AllowThousands bendera.
. Simbol titik desimal khusus budaya. Simbol titik desimal dari budaya yang ditentukan oleh provider dapat muncul jika valuestyle menyertakan NumberStyles.AllowDecimalPoint bendera.
fractional_digits Satu atau beberapa kemunculan digit 0. Digit pecahan dapat muncul value hanya jika style menyertakan NumberStyles.AllowDecimalPoint bendera.
E Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
exponential_digits Urutan digit dari 0 hingga 9. Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Karakter NUL (U+0000) s yang mengakhiri akan diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

Nilai non-komposit NumberStyles Elemen yang diizinkan dalam nilai selain digit
None Digit desimal saja.
AllowDecimalPoint Titik desimal (.) dan elemen fractional_digits . Namun, fractional_digits harus hanya terdiri dari satu atau lebih 0 digit, atau metode mengembalikan false.
AllowExponent Karakter "e" atau "E", yang menunjukkan notasi eksponensial, bersama dengan exponential_digits. Jika value mewakili angka dalam notasi eksponensial, angka tersebut tidak dapat memiliki komponen pecahan bukan nol.
AllowLeadingWhite Elemen ws di awal value.
AllowTrailingWhite Elemen ws di akhir value.
AllowLeadingSign Elemen tanda sebelum digit.
AllowTrailingSign Elemen tanda setelahdigit.
AllowParentheses Elemen tanda tangan dalam bentuk tanda kurung yang menyertakan nilai numerik.
AllowThousands Elemen pemisah grup (,).
AllowCurrencySymbol Elemen mata uang ($).
Currency Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial.
Float Elemen ws di awal atau akhir , valuetanda di awal value, dan simbol titik desimal (.). Parameter value juga dapat menggunakan notasi eksponensial.
Number Elemen ws, sign, group separator (,), dan decimal point (.).
Any Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal.

NumberStyles.AllowHexSpecifier Jika bendera digunakan, value harus berupa nilai heksadesimal. Satu-satunya bendera lain yang dapat hadir adalah styleNumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles memiliki gaya komposit, HexNumber, yang mencakup kedua bendera spasi putih.)

Parameter provider adalah IFormatProvider implementasi. Metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi khusus budaya tentang format value. Parameter provider dapat berupa salah satu hal berikut:

  • Objek CultureInfo yang mewakili budaya yang memasok informasi pemformatan. Metodenya GetFormat mengembalikan objek yang menyediakan informasi pemformatan numerik untuk budaya tersebut NumberFormatInfo .

  • Objek NumberFormatInfo yang menyediakan informasi pemformatan numerik. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)

  • Objek kustom yang mengimplementasikan IFormatProvider. Metodenya GetFormat membuat instans NumberFormatInfo dan mengembalikan objek yang menyediakan informasi pemformatan.

Jika provider adalah null, NumberFormatInfo objek untuk budaya saat ini digunakan.

Lihat juga

Berlaku untuk

TryParse(String, IFormatProvider, BigInteger)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mencoba mengurai string ke dalam nilai.

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

String yang akan diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

result
BigInteger

Ketika metode ini kembali, berisi hasil penguraian yang berhasil s atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika s berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(ReadOnlySpan<Char>, IFormatProvider, BigInteger)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mencoba mengurai rentang karakter ke dalam nilai.

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>

Rentang karakter untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

result
BigInteger

Ketika metode ini kembali, berisi hasil penguraian yang berhasil s, atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika s berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(String, BigInteger)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mencoba mengonversi representasi string dari angka menjadi BigInteger setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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

Representasi string dari angka.

result
BigInteger

Ketika metode ini kembali, berisi BigInteger yang setara dengan angka yang terkandung dalam value, atau nol (0) jika konversi gagal. Konversi gagal jika value parameter adalah null atau bukan format yang benar. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true jika value berhasil dikonversi; jika tidak, false.

Pengecualian

valueadalah null.

Contoh

Contoh berikut menggunakan TryParse(String, BigInteger) metode untuk membuat instans dua BigInteger objek. Jika konversi berhasil, konversi mengalikan setiap objek dengan nomor lain lalu memanggil Compare metode untuk menentukan hubungan antara kedua objek.

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.

Keterangan

Metode TryParse(String, BigInteger) ini seperti Parse(String) metode , kecuali bahwa metode tersebut tidak memberikan pengecualian jika konversi gagal. Metode ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk menguji FormatException apakah value tidak valid dan tidak dapat berhasil diurai.

Parameter value harus menjadi representasi string dari angka desimal dalam bentuk berikut:

[ws] [tanda]digits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional.
sign Tanda opsional. Karakter tanda yang valid ditentukan oleh NumberFormatInfo.NegativeSign properti dan NumberFormatInfo.PositiveSign dari budaya saat ini.
Digit Urutan digit desimal berkisar antara 0 hingga 9.

Catatan

String yang ditentukan oleh value parameter tidak boleh berisi pemisah grup atau pemisah desimal apa pun, dan tidak dapat memiliki bagian desimal.

Parameter value ditafsirkan dengan menggunakan NumberStyles.Integer gaya . Selain digit desimal, hanya spasi di depan dan di belakang dengan tanda di depan yang diizinkan. Untuk secara eksplisit menentukan elemen gaya dengan informasi pemformatan khusus budaya yang dapat ada di value, panggil TryParse(String, NumberStyles, IFormatProvider, BigInteger) metode .

Parameter value diurai dengan menggunakan informasi pemformatan dalam NumberFormatInfo objek untuk budaya saat ini. Untuk informasi selengkapnya, lihat NumberFormatInfo.CurrentInfo.

Kelebihan beban ini menafsirkan semua digit dalam value parameter sebagai digit desimal. Untuk mengurai representasi string dari nomor heksadesimal, panggil TryParse(String, NumberStyles, IFormatProvider, BigInteger) kelebihan beban sebagai gantinya.

Lihat juga

Berlaku untuk

TryParse(ReadOnlySpan<Char>, BigInteger)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mencoba mengonversi representasi angka yang terkandung dalam rentang karakter baca-saja yang ditentukan, ke BigInteger nilai yang setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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>

Representasi angka sebagai rentang karakter baca-saja.

result
BigInteger

Ketika metode ini kembali, berisi BigInteger yang setara dengan angka yang terkandung dalam value, atau nol (0) jika konversi gagal. Konversi gagal jika value parameter adalah rentang karakter kosong atau bukan format yang benar. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true jika value berhasil dikonversi; jika tidak, false.

Lihat juga

Berlaku untuk

TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mencoba mengonversi representasi string dari angka dalam gaya tertentu dan format khusus budaya ke BigInteger yang setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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

Representasi string dari angka. String ditafsirkan menggunakan gaya yang ditentukan oleh style.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di value. Nilai umum yang akan ditentukan adalah Integer.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang value.

result
BigInteger

Ketika metode ini kembali, berisi BigInteger yang setara dengan angka yang terkandung dalam value, atau Zero jika konversi gagal. Konversi gagal jika value parameter adalah null atau tidak dalam format yang sesuai dengan style. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true value jika parameter berhasil dikonversi; jika tidak, false.

Pengecualian

style bukan nilai NumberStyles .

-atau-

style AllowHexSpecifier menyertakan bendera atau HexNumber bersama dengan nilai lain.

Contoh

Contoh berikut melakukan beberapa panggilan ke TryParse(String, NumberStyles, IFormatProvider, BigInteger) metode menggunakan berbagai kombinasi nilai untuk style parameter dan provider .

string numericString;
BigInteger number = BigInteger.Zero;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sejumlah panggilan individu ke TryParse(String, NumberStyles, IFormatProvider, BigInteger) metode meneruskan instans kelas berikut BigIntegerFormatProvider , yang mendefinisikan tilde (~) sebagai tanda negatif.

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

Keterangan

Metode TryParse(String, NumberStyles, IFormatProvider, BigInteger) ini seperti Parse(String, NumberStyles, IFormatProvider) metode , kecuali bahwa metode tersebut tidak memberikan pengecualian jika konversi gagal. Metode ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk menguji FormatException apakah value tidak valid dan tidak berhasil diurai.

Parameter style menentukan elemen gaya (seperti spasi kosong atau tanda positif atau negatif) yang diizinkan dalam value parameter agar operasi penguraian berhasil. Ini harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Bergantung pada nilai style, value parameter dapat mencakup elemen berikut:

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

style Jika parameter menyertakan AllowHexSpecifier, value parameter dapat menyertakan elemen berikut:

[ws] hexdigits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingWhite bendera, atau di akhir value jika style menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh CurrencyPositivePattern properti objek yang NumberFormatInfo dikembalikan oleh GetFormat metode provider parameter . Simbol mata uang dapat muncul jika valuestyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan value untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera .
Digit Urutan digit dari 0 hingga 9.
, Pemisah grup khusus budaya. Pemisah grup budaya yang ditentukan oleh provider dapat muncul jika valuestyle menyertakan NumberStyles.AllowThousands bendera .
. Simbol titik desimal khusus budaya. Simbol titik desimal budaya yang ditentukan oleh provider dapat muncul jika valuestyle menyertakan NumberStyles.AllowDecimalPoint bendera .
fractional_digits Satu atau beberapa kemunculan digit 0. Digit pecahan dapat muncul value hanya jika style menyertakan NumberStyles.AllowDecimalPoint bendera.
E Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
exponential_digits Urutan digit dari 0 hingga 9. Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Setiap karakter NUL yang mengakhiri (U+0000) di s diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

String dengan digit desimal saja (yang sesuai dengan NumberStyles.None bendera) selalu berhasil diurai. Sebagian besar elemen kontrol anggota yang tersisa NumberStyles yang mungkin ada, tetapi tidak diharuskan ada, dalam string input ini. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di value.

Nilai non-komposit NumberStyles Elemen yang diizinkan dalam nilai selain digit
None Digit desimal saja.
AllowDecimalPoint Titik desimal (.) dan elemen fractional_digits . Namun, fractional_digits harus terdiri dari hanya satu atau lebih 0 digit, atau metode mengembalikan false.
AllowExponent Karakter "e" atau "E", yang menunjukkan notasi eksponensial, bersama dengan exponential_digits. Jika value mewakili angka dalam notasi eksponensial, angka tersebut tidak dapat memiliki komponen pecahan bukan nol.
AllowLeadingWhite Elemen ws di awal value.
AllowTrailingWhite Elemen ws di akhir value.
AllowLeadingSign Elemen tanda sebelum digit.
AllowTrailingSign Elemen tanda setelahdigit.
AllowParentheses Elemen tanda dalam bentuk tanda kurung yang menyertakan nilai numerik.
AllowThousands Elemen pemisah grup (,).
AllowCurrencySymbol Elemen mata uang ($).
Currency Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial.
Float Elemen ws di awal atau akhir , valuetanda di awal value, dan simbol titik desimal (.). Parameter value juga dapat menggunakan notasi eksponensial.
Number Elemen ws, sign, group separator (,), dan decimal point (.).
Any Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal.

Penting

Jika Anda menggunakan TryParse metode untuk melakukan round-trip representasi string dari BigInteger nilai yang dihasilkan oleh ToString metode , Anda harus menggunakan BigInteger.ToString(String) metode dengan penentu format "R" untuk menghasilkan representasi string nilai BigInteger . Jika tidak, representasi string dari BigInteger mempertahankan hanya 50 digit paling signifikan dari nilai asli, dan data mungkin hilang ketika Anda menggunakan TryParse metode untuk memulihkan BigInteger nilai.

NumberStyles.AllowHexSpecifier Jika bendera digunakan, value harus berupa nilai heksadesimal. Satu-satunya bendera lain yang dapat ada di style adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles memiliki gaya komposit, HexNumber, yang mencakup kedua bendera spasi putih.)

Catatan

Jika value merupakan representasi string dari angka heksadesimal, itu tidak dapat didahului oleh dekorasi apa pun (seperti 0x atau &h) yang membedakannya sebagai angka heksadesimal. Hal ini menyebabkan konversi gagal.

Jika value adalah string heksadesimal, TryParse(String, NumberStyles, IFormatProvider, BigInteger) metode menafsirkan value sebagai angka negatif yang disimpan dengan menggunakan representasi pelengkap dua jika dua digit heksadesimal pertamanya lebih besar dari atau sama dengan 0x80. Dengan kata lain, metode ini menafsirkan bit urutan tertinggi dari byte pertama sebagai value bit tanda. Untuk memastikan bahwa string heksadesimal ditafsirkan dengan benar sebagai angka positif, digit pertama di value harus memiliki nilai nol. Misalnya, metode ini menafsirkan 0x80 sebagai nilai negatif, tetapi menafsirkan salah satu 0x080 atau 0x0080 sebagai nilai positif. Contoh berikut mengilustrasikan perbedaan antara string heksadesimal yang mewakili nilai negatif dan positif.

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.

Parameter provider adalah IFormatProvider implementasi. Metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi khusus budaya tentang format value. Parameter provider dapat berupa salah satu dari berikut ini:

  • Objek CultureInfo yang mewakili budaya yang memasok informasi pemformatan. Metodenya GetFormat mengembalikan objek yang menyediakan informasi pemformatan numerik untuk budaya tersebut NumberFormatInfo .

  • Objek NumberFormatInfo yang menyediakan informasi pemformatan numerik. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)

  • Objek kustom yang mengimplementasikan IFormatProvider. Metodenya GetFormat membuat instans NumberFormatInfo dan mengembalikan objek yang menyediakan informasi pemformatan.

Jika provider adalah null, NumberFormatInfo objek untuk budaya saat ini digunakan.

Lihat juga

Berlaku untuk