UInt32.TryParse Metode

Definisi

Mencoba mengonversi representasi string angka menjadi setara dengan bilangan bulat yang tidak ditandatangani 32-bit. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

Overload

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32)

Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.

TryParse(ReadOnlySpan<Char>, UInt32)

Mencoba mengonversi representasi rentang angka menjadi setara dengan bilangan bulat 32-bit yang tidak ditandatangani. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

TryParse(String, UInt32)

Mencoba mengonversi representasi string dari angka menjadi setara dengan bilangan bulat yang tidak ditandatangani 32-bit. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32)

Mencoba mengurai rentang karakter ke dalam nilai.

TryParse(String, IFormatProvider, UInt32)

Mencoba mengurai string ke dalam nilai.

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

Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.

TryParse(ReadOnlySpan<Byte>, UInt32)

Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat tidak bertanda 32-bit yang setara.

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

Mencoba mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat tidak bertanda 32-bit yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

TryParse(String, NumberStyles, IFormatProvider, UInt32)

Mencoba mengonversi representasi string dari angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat tidak bertanda 32-bit yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32)

Sumber:
UInt32.cs
Sumber:
UInt32.cs

Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.

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

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang karakter UTF-8 untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text.

result
UInt32

Saat dikembalikan, berisi hasil penguraian yang berhasil utf8Text atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika utf8Text berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(ReadOnlySpan<Char>, UInt32)

Sumber:
UInt32.cs
Sumber:
UInt32.cs
Sumber:
UInt32.cs

Penting

API ini bukan kompatibel CLS.

Mencoba mengonversi representasi rentang angka menjadi setara dengan bilangan bulat 32-bit yang tidak ditandatangani. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::UInt32 % result);
public static bool TryParse (ReadOnlySpan<char> s, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, out uint result);
static member TryParse : ReadOnlySpan<char> * uint32 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * uint32 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As UInteger) As Boolean

Parameter

s
ReadOnlySpan<Char>

Rentang yang berisi karakter yang mewakili angka yang akan dikonversi.

result
UInt32

Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 32-bit yang setara dengan angka yang terkandung dalam s, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika s parameter adalah null atau Empty, bukan format yang benar, atau mewakili angka yang kurang dari UInt32.MinValue atau lebih besar dari UInt32.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan akan ditimpa result .

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Atribut

Berlaku untuk

TryParse(String, UInt32)

Sumber:
UInt32.cs
Sumber:
UInt32.cs
Sumber:
UInt32.cs

Penting

API ini bukan kompatibel CLS.

Alternatif kompatibel CLS
System.Int64.TryParse(String, Int64)

Mencoba mengonversi representasi string dari angka menjadi setara dengan bilangan bulat yang tidak ditandatangani 32-bit. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::UInt32 % result);
[System.CLSCompliant(false)]
public static bool TryParse (string s, out uint result);
public static bool TryParse (string? s, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, out uint result);
[<System.CLSCompliant(false)>]
static member TryParse : string * uint32 -> bool
static member TryParse : string * uint32 -> bool
Public Shared Function TryParse (s As String, ByRef result As UInteger) As Boolean

Parameter

s
String

String yang mewakili angka yang akan dikonversi.

result
UInt32

Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 32-bit yang setara dengan angka yang terkandung dalam s, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika s parameter adalah null atau Empty, bukan format yang benar, atau mewakili angka yang kurang dari UInt32.MinValue atau lebih besar dari UInt32.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan akan ditimpa result .

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Atribut

Contoh

Contoh berikut memanggil TryParse(String, UInt32) metode sekali untuk setiap elemen dalam array string.

string[] numericStrings = { "1293.8", "+1671.7", "28347.",  
                            "   33113684  ", "(0)", "-0", "-1", 
                            "+1293617", "18-", "119870", "31,024", 
                            "  3127094 ", "00700000" };
uint number;
foreach (string numericString in numericStrings)
{
   if (UInt32.TryParse(numericString, out number)) 
      Console.WriteLine("Converted '{0}' to {1}.", numericString, number);
   else
      Console.WriteLine("Cannot convert '{0}' to a UInt32.", numericString);
}
// The example displays the following output:
//       Cannot convert '1293.8' to a UInt32.
//       Cannot convert '+1671.7' to a UInt32.
//       Cannot convert '28347.' to a UInt32.
//       Converted '   33113684  ' to 33113684.
//       Cannot convert '(0)' to a UInt32.
//       Converted '-0' to 0.
//       Cannot convert '-1' to a UInt32.
//       Converted '+1293617' to 1293617.
//       Cannot convert '18-' to a UInt32.
//       Converted '119870' to 119870.
//       Cannot convert '31,024' to a UInt32.
//       Converted '  3127094 ' to 3127094.
//       Converted '0070000' to 70000.
let numericStrings = 
    [| "1293.8"; "+1671.7"; "28347."
       "   33113684  "; "(0)"; "-0"; "-1" 
       "+1293617"; "18-"; "119870"; "31,024" 
       "  3127094 "; "00700000" |]

for numericString in numericStrings do
    match UInt32.TryParse numericString with
    | true, number ->
        printfn $"Converted '{numericString}' to {number}."
    | _ ->
        printfn $"Cannot convert '{numericString}' to a UInt32."
// The example displays the following output:
//       Cannot convert '1293.8' to a UInt32.
//       Cannot convert '+1671.7' to a UInt32.
//       Cannot convert '28347.' to a UInt32.
//       Converted '   33113684  ' to 33113684.
//       Cannot convert '(0)' to a UInt32.
//       Converted '-0' to 0.
//       Cannot convert '-1' to a UInt32.
//       Converted '+1293617' to 1293617.
//       Cannot convert '18-' to a UInt32.
//       Converted '119870' to 119870.
//       Cannot convert '31,024' to a UInt32.
//       Converted '  3127094 ' to 3127094.
//       Converted '0070000' to 70000.
Dim numericStrings() As String = {"1293.8", "+1671.7", "28347.", 
                                  "   33113684  ", "(0)", "-0", "-1",
                                  "+1293617", "18-", "119870", 
                                  "31,024", "  3127094 ", "0070000" }
Dim number As UInteger
For Each numericString As String In numericStrings
   If UInt32.TryParse(numericString, number) Then
      Console.WriteLine("Converted '{0}' to {1}.", numericString, number)
   Else
      Console.WriteLine("Cannot convert '{0}' to a UInt32.", numericString)
   End If      
Next
' The example displays the following output:
'       Cannot convert '1293.8' to a UInt32.
'       Cannot convert '+1671.7' to a UInt32.
'       Cannot convert '28347.' to a UInt32.
'       Converted '   33113684  ' to 33113684.
'       Cannot convert '(0)' to a UInt32.
'       Converted '-0' to 0.
'       Cannot convert '-1' to a UInt32.
'       Converted '+1293617' to 1293617.
'       Cannot convert '18-' to a UInt32.
'       Converted '119870' to 119870.
'       Cannot convert '31,024' to a UInt32.
'       Converted '  3127094 ' to 3127094.
'       Converted '0070000' to 70000.

Keterangan

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

Parameter s 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.

Parameter s 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 s, panggil TryParse(String, NumberStyles, IFormatProvider, UInt32) metode .

Catatan

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

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

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

Lihat juga

Berlaku untuk

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32)

Sumber:
UInt32.cs
Sumber:
UInt32.cs
Sumber:
UInt32.cs

Mencoba mengurai rentang karakter ke dalam nilai.

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

Parameter

s
ReadOnlySpan<Char>

Rentang karakter untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

result
UInt32

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, IFormatProvider, UInt32)

Sumber:
UInt32.cs
Sumber:
UInt32.cs
Sumber:
UInt32.cs

Mencoba mengurai string ke dalam nilai.

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

Parameter

s
String

String yang akan diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

result
UInt32

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<Byte>, NumberStyles, IFormatProvider, UInt32)

Sumber:
UInt32.cs
Sumber:
UInt32.cs

Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.

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

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang karakter UTF-8 untuk diurai.

style
NumberStyles

Kombinasi bitwise gaya angka yang dapat ada di utf8Text.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text.

result
UInt32

Saat dikembalikan, berisi hasil penguraian yang berhasil utf8Text atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika utf8Text berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(ReadOnlySpan<Byte>, UInt32)

Sumber:
UInt32.cs
Sumber:
UInt32.cs

Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat tidak bertanda 32-bit yang setara.

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

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang yang berisi karakter UTF-8 yang mewakili angka yang akan dikonversi.

result
UInt32

Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 32-bit yang setara dengan angka yang terkandung dalam utf8Text jika konversi berhasil, atau nol jika konversi gagal. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan dalam hasil akan ditimpa.

Mengembalikan

true jika utf8Text berhasil dikonversi; jika tidak, false.

Berlaku untuk

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

Sumber:
UInt32.cs
Sumber:
UInt32.cs
Sumber:
UInt32.cs

Penting

API ini bukan kompatibel CLS.

Mencoba mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat tidak bertanda 32-bit yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

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

Parameter

s
ReadOnlySpan<Char>

Rentang yang berisi karakter yang mewakili angka yang akan dikonversi. Rentang ditafsirkan dengan menggunakan gaya yang ditentukan oleh style parameter .

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari s. Nilai umum yang akan ditentukan adalah Integer.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

result
UInt32

Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 32-bit yang setara dengan angka yang terkandung dalam s, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika s parameter adalah null atau Empty, tidak dalam format yang sesuai dengan style, atau mewakili angka yang kurang dari UInt32.MinValue atau lebih besar dari UInt32.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan akan ditimpa result .

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Atribut

Berlaku untuk

TryParse(String, NumberStyles, IFormatProvider, UInt32)

Sumber:
UInt32.cs
Sumber:
UInt32.cs
Sumber:
UInt32.cs

Penting

API ini bukan kompatibel CLS.

Alternatif kompatibel CLS
System.Int64.TryParse(String, Int64)

Mencoba mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat 32-bit yang tidak ditandatangani yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

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

Parameter

s
String

String yang mewakili angka yang akan dikonversi. String ditafsirkan dengan menggunakan gaya yang ditentukan oleh style parameter .

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari s. Nilai umum yang akan ditentukan adalah Integer.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

result
UInt32

Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 32-bit yang setara dengan angka yang terkandung dalam s, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika s parameter adalah null atau Empty, tidak dalam format yang sesuai dengan style, atau mewakili angka yang kurang dari UInt32.MinValue atau lebih besar dari UInt32.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan akan ditimpa result .

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Atribut

Pengecualian

style bukan nilai NumberStyles .

-atau-

style bukan kombinasi nilai AllowHexSpecifier dan HexNumber .

Contoh

Contoh berikut memanggil TryParse(String, NumberStyles, IFormatProvider, UInt32) metode dengan sejumlah string dan NumberStyles nilai yang berbeda.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;
      
      numericString = "2106034";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);
      
      numericString = "-10603";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);
      
      numericString = "29103674.00";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);
      
      numericString = "10345.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "41792210E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles); 
      
      numericString = "9112E-01";
      CallTryParse(numericString, styles);
          
      numericString = "312E01";
      CallTryParse(numericString, styles); 
      
      numericString = "FFC86DA1";
      CallTryParse(numericString, NumberStyles.HexNumber);
      
      numericString = "0x8F8C";
      CallTryParse(numericString, NumberStyles.HexNumber);
   }
   
   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      uint number;
      bool result = UInt32.TryParse(stringToConvert, styles, 
                                   CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine($"Converted '{stringToConvert}' to {number}.");
      else
         Console.WriteLine($"Attempted conversion of '{stringToConvert}' failed.");
   }
}
// The example displays the following output:
//       Converted '2106034' to 2106034.
//       Attempted conversion of '-10603' failed.
//       Converted '29103674.00' to 29103674.
//       Attempted conversion of '10345.72' failed.
//       Converted '41792210E-01' to 4179221.
//       Attempted conversion of '9112E-01' failed.
//       Converted '312E01' to 3120.
//       Converted 'FFC86DA1' to 4291325345.
//       Attempted conversion of '0x8F8C' failed.
open System
open System.Globalization

let callTryParse (stringToConvert: string) (styles: NumberStyles) =
    match UInt32.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
    | true, number ->
        printfn $"Converted '{stringToConvert}' to {number}."
        printfn $"Attempted conversion of '{stringToConvert}' failed."
    | _ -> ()

do
    let numericString = "2106034"
    let styles = NumberStyles.Integer
    callTryParse numericString styles

    let numericString = "-10603"
    let styles = NumberStyles.None
    callTryParse numericString styles

    let numericString = "29103674.00"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
    callTryParse numericString styles

    let numericString = "10345.72"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
    callTryParse numericString styles

    let numericString = "41792210E-01"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
    callTryParse numericString styles 

    let numericString = "9112E-01"
    callTryParse numericString styles
        
    let numericString = "312E01"
    callTryParse numericString styles 

    let numericString = "FFC86DA1"
    callTryParse numericString NumberStyles.HexNumber

    let numericString = "0x8F8C"
    callTryParse numericString NumberStyles.HexNumber
   
// The example displays the following output:
//       Converted '2106034' to 2106034.
//       Attempted conversion of '-10603' failed.
//       Converted '29103674.00' to 29103674.
//       Attempted conversion of '10345.72' failed.
//       Converted '41792210E-01' to 4179221.
//       Attempted conversion of '9112E-01' failed.
//       Converted '312E01' to 3120.
//       Converted 'FFC86DA1' to 4291325345.
//       Attempted conversion of '0x8F8C' failed.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim numericString As String
      Dim styles As NumberStyles
      
      numericString = "2106034"
      styles = NumberStyles.Integer
      CallTryParse(numericString, styles)
      
      numericString = "-10603"
      styles = NumberStyles.None
      CallTryParse(numericString, styles)
      
      numericString = "29103674.00"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)
      
      numericString = "10345.72"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)

      numericString = "41792210E-01"
      styles = NumberStyles.Integer Or NumberStyles.AllowExponent
      CallTryParse(numericString, styles) 
      
      numericString = "9112E-01"
      CallTryParse(numericString, styles)
          
      numericString = "312E01"
      CallTryParse(numericString, styles) 
      
      numericString = "FFC86DA1"
      CallTryParse(numericString, NumberStyles.HexNumber)
      
      numericString = "0x8F8C"
      CallTryParse(numericString, NumberStyles.HexNumber)
   End Sub
   
   Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
      Dim number As UInteger
      Dim result As Boolean = UInt32.TryParse(stringToConvert, styles, _
                                              CultureInfo.InvariantCulture, number)
      If result Then
         Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number)
      Else
         Console.WriteLine("Attempted conversion of '{0}' failed.", _
                           Convert.ToString(stringToConvert))
      End If                                                                           
   End Sub
End Module
' The example displays the following output to the console:
'       Converted '2106034' to 2106034.
'       Attempted conversion of '-10603' failed.
'       Converted '29103674.00' to 29103674.
'       Attempted conversion of '10345.72' failed.
'       Converted '41792210E-01' to 4179221.
'       Attempted conversion of '9112E-01' failed.
'       Converted '312E01' to 3120.
'       Converted 'FFC86DA1' to 4291325345.
'       Attempted conversion of '0x8F8C' failed.

Keterangan

Metode TryParse(String, NumberStyles, IFormatProvider, UInt32) 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 s tidak valid dan tidak berhasil diurai.

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

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

Item dalam tanda kurung siku ([ dan ]) bersifat opsional. Atau, jika style parameter menyertakan NumberStyles.AllowHexSpecifier, s parameter dapat menyertakan elemen berikut:

[ws] hexdigits[ws]

Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingWhite bendera, atau di akhir s 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 sstyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan s untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera . Namun, jika tanda negatif ada, s hanya dapat mewakili nilai nol agar operasi penguraian berhasil.
Digit Urutan digit dari 0 hingga 9.
, Pemisah grup khusus budaya. Pemisah grup budaya yang ditentukan oleh provider dapat muncul jika sstyle menyertakan NumberStyles.AllowThousands bendera .
. Simbol titik desimal khusus budaya. Simbol titik desimal budaya yang ditentukan oleh provider dapat muncul jika sstyle menyertakan NumberStyles.AllowDecimalPoint bendera .
fractional_digits Satu atau beberapa kemunculan digit 0. Digit pecahan dapat muncul s hanya jika style menyertakan NumberStyles.AllowDecimalPoint bendera.
E Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter s dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
exponential_digits Urutan digit dari 0 hingga 9. Parameter s 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 s.

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 s mewakili angka dalam notasi eksponensial, angka tersebut tidak dapat memiliki komponen pecahan bukan nol.
AllowLeadingWhite Elemen ws di awal s.
AllowTrailingWhite Elemen ws di akhir s.
AllowLeadingSign Elemen tanda sebelum digit.
AllowTrailingSign Elemen tanda setelahdigit.
AllowParentheses Elemen tanda dalam bentuk tanda kurung yang menyertakan nilai numerik nol.
AllowThousands Elemen pemisah grup (,).
AllowCurrencySymbol Elemen mata uang ($).
Currency Semua elemen. Namun, s tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial.
Float Elemen ws di awal atau akhir , standa di awal s, dan simbol titik desimal (.). Parameter s juga dapat menggunakan notasi eksponensial.
Number Elemen ws, sign, group separator (,), dan decimal point (.).
Any Semua elemen. Namun, s tidak dapat mewakili angka heksadesimal.

NumberStyles.AllowHexSpecifier Jika bendera digunakan, s 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 s 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.

Parameter provider adalah IFormatProvider implementasi. Metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi khusus budaya tentang format s. 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