UInt16.TryParse Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengonversi representasi string dari angka ke bilangan bulat yang tidak ditandatangani 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
Overload
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt16) |
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai. |
TryParse(ReadOnlySpan<Char>, UInt16) |
Mencoba mengonversi representasi rentang angka menjadi setara dengan bilangan bulat yang tidak ditandatangani 16-bit. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(String, UInt16) |
Mencoba mengonversi representasi string dari angka ke setara dengan bilangan bulat yang tidak ditandatangani 16-bit. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt16) |
Mencoba mengurai rentang karakter menjadi nilai. |
TryParse(String, IFormatProvider, UInt16) |
Mencoba mengurai string ke dalam nilai. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt16) |
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai. |
TryParse(ReadOnlySpan<Byte>, UInt16) |
Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat yang tidak ditandatangani 16-bit yang setara. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt16) |
Mencoba mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat yang tidak ditandatangani 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(String, NumberStyles, IFormatProvider, UInt16) |
Mencoba mengonversi representasi string dari angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat yang tidak ditandatangani 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = IUtf8SpanParsable<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As UShort) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang karakter UTF-8 untuk diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text
.
- result
- UInt16
Saat dikembalikan, berisi hasil dari penguraian utf8Text
yang berhasil atau nilai yang tidak terdefinisi pada kegagalan.
Mengembalikan
true
jika utf8Text
berhasil diurai; jika tidak, false
.
Berlaku untuk
TryParse(ReadOnlySpan<Char>, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
Penting
API ini bukan kompatibel CLS.
Mencoba mengonversi representasi rentang angka menjadi setara dengan bilangan bulat yang tidak ditandatangani 16-bit. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse (ReadOnlySpan<char> s, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, out ushort result);
static member TryParse : ReadOnlySpan<char> * uint16 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As UShort) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili angka yang akan dikonversi.
- result
- UInt16
Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 16-bit yang setara dengan angka yang terkandung dalam s
, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika parameter s
null
atau Empty, tidak dalam format yang benar. , atau mewakili angka yang kurang dari UInt16.MinValue atau lebih besar dari UInt16.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan dalam result
akan ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
- Atribut
Berlaku untuk
TryParse(String, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
Penting
API ini bukan kompatibel CLS.
- Alternatif kompatibel CLS
- System.Int32.TryParse(String, Int32)
Mencoba mengonversi representasi string dari angka ke setara dengan bilangan bulat yang tidak ditandatangani 16-bit. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::UInt16 % result);
[System.CLSCompliant(false)]
public static bool TryParse (string s, out ushort result);
public static bool TryParse (string? s, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, out ushort result);
[<System.CLSCompliant(false)>]
static member TryParse : string * uint16 -> bool
static member TryParse : string * uint16 -> bool
Public Shared Function TryParse (s As String, ByRef result As UShort) As Boolean
Parameter
- s
- String
String yang mewakili angka yang akan dikonversi.
- result
- UInt16
Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 16-bit yang setara dengan angka yang terkandung dalam s
, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika parameter s
null
atau Empty, tidak dalam format yang benar, atau mewakili angka yang kurang dari UInt16.MinValue atau lebih besar dari UInt16.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan dalam result
akan ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
- Atribut
Contoh
Contoh berikut memanggil metode TryParse(String, UInt16) 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(String, UInt16) seperti metode Parse(String), kecuali bahwa metode tersebut tidak melemparkan pengecualian jika konversi gagal. Metode ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk menguji FormatException jika s
tidak valid dan tidak dapat berhasil diurai.
Parameter s
harus menjadi representasi string dari angka desimal dalam formulir berikut:
[ws] [tanda]digit[ws]
Elemen dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.
Elemen | Deskripsi |
---|---|
ws | Spasi kosong opsional. |
tanda tangan |
Tanda opsional. Karakter tanda yang valid ditentukan oleh properti NumberFormatInfo.NegativeSign dan NumberFormatInfo.PositiveSign budaya saat ini. |
digit | Urutan digit desimal mulai dari 0 hingga 9. |
Nota
String yang ditentukan oleh parameter s
tidak boleh berisi pemisah grup atau pemisah desimal apa pun, dan tidak dapat memiliki bagian desimal.
Parameter s
ditafsirkan dengan menggunakan gaya NumberStyles.Integer. Selain digit desimal, hanya spasi di depan dan belakang dengan tanda di depan yang diizinkan. Untuk secara eksplisit menentukan elemen gaya dengan informasi pemformatan khusus budaya yang dapat ada di s
, panggil metode TryParse(String, NumberStyles, IFormatProvider, UInt16).
Parameter s
diurai dengan menggunakan informasi pemformatan dalam objek NumberFormatInfo untuk budaya sistem saat ini. Untuk informasi selengkapnya, lihat NumberFormatInfo.CurrentInfo.
Kelebihan beban ini menginterpretasikan semua digit dalam parameter s
sebagai digit desimal. Untuk mengurai representasi string dari nomor heksadesimal, panggil TryParse(String, NumberStyles, IFormatProvider, UInt16) kelebihan beban sebagai gantinya.
Lihat juga
- Parse(String)
- ToString()
- Mengurai String Numerik di .NET
- Sampel : Utilitas Pemformatan .NET Core WinForms (C#)
- Sampel : Utilitas Pemformatan .NET Core WinForms (Visual Basic)
Berlaku untuk
TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
Mencoba mengurai rentang karakter menjadi nilai.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = ISpanParsable<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As UShort) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang karakter untuk diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
- result
- UInt16
Ketika metode ini kembali, berisi hasil penguraian yang berhasil s
, atau nilai yang tidak ditentukan pada kegagalan.
Mengembalikan
true
jika s
berhasil diurai; jika tidak, false
.
Berlaku untuk
TryParse(String, IFormatProvider, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
Mencoba mengurai string ke dalam nilai.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = IParsable<System::UInt16>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out ushort result);
static member TryParse : string * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As UShort) As Boolean
Parameter
- s
- String
String yang akan diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
- result
- UInt16
Ketika metode ini kembali, berisi hasil dari penguraian s
yang berhasil atau nilai yang tidak terdefinisi pada kegagalan.
Mengembalikan
true
jika s
berhasil diurai; jika tidak, false
.
Berlaku untuk
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.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::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang karakter UTF-8 untuk diurai.
- style
- NumberStyles
Kombinasi bitwise dari gaya angka yang dapat ada di utf8Text
.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text
.
- result
- UInt16
Saat dikembalikan, berisi hasil dari penguraian utf8Text
yang berhasil atau nilai yang tidak terdefinisi pada kegagalan.
Mengembalikan
true
jika utf8Text
berhasil diurai; jika tidak, false
.
Berlaku untuk
TryParse(ReadOnlySpan<Byte>, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat yang tidak ditandatangani 16-bit yang setara.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out ushort result);
static member TryParse : ReadOnlySpan<byte> * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As UShort) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang yang berisi karakter UTF-8 yang mewakili angka yang akan dikonversi.
- result
- UInt16
Ketika metode ini kembali, berisi nilai bilangan bulat yang tidak ditandatangani 16-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, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
Penting
API ini bukan kompatibel CLS.
Mencoba mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat yang tidak ditandatangani 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili angka yang akan dikonversi. Rentang ditafsirkan dengan menggunakan gaya yang ditentukan oleh parameter style
.
- style
- NumberStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format s
yang diizinkan. Nilai umum yang akan ditentukan adalah Integer.
- provider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang s
.
- result
- UInt16
Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 16-bit yang setara dengan angka yang terkandung dalam s
, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika parameter s
null
atau Empty, tidak sesuai dengan format yang sesuai dengan style
, atau mewakili angka yang kurang dari UInt16.MinValue atau lebih besar dari UInt16.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan dalam result
akan ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
- Atribut
Berlaku untuk
TryParse(String, NumberStyles, IFormatProvider, UInt16)
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
- Sumber:
- UInt16.cs
Penting
API ini bukan kompatibel CLS.
- Alternatif kompatibel CLS
- System.Int32.TryParse(String, Int32)
Mencoba mengonversi representasi string dari angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat yang tidak ditandatangani 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out ushort result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean
Parameter
- s
- String
String yang mewakili angka yang akan dikonversi. String ditafsirkan dengan menggunakan gaya yang ditentukan oleh parameter style
.
- style
- NumberStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format s
yang diizinkan. Nilai umum yang akan ditentukan adalah Integer.
- provider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang s
.
- result
- UInt16
Ketika metode ini kembali, berisi nilai bilangan bulat tidak ditandatangani 16-bit yang setara dengan angka yang terkandung dalam s
, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika parameter s
null
atau Empty, tidak sesuai dengan format yang sesuai dengan style
, atau mewakili angka yang kurang dari UInt16.MinValue atau lebih besar dari UInt16.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan dalam result
akan ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
- Atribut
Pengecualian
Contoh
Contoh berikut memanggil metode TryParse(String, NumberStyles, IFormatProvider, UInt16) dengan sejumlah string dan nilai NumberStyles yang berbeda.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string numericString;
NumberStyles styles;
numericString = "10603";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-10603";
styles = NumberStyles.None;
CallTryParse(numericString, styles);
numericString = "29103.00";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10345.72";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "2210E-01";
styles = NumberStyles.Integer | NumberStyles.AllowExponent;
CallTryParse(numericString, styles);
numericString = "9112E-01";
CallTryParse(numericString, styles);
numericString = "312E01";
CallTryParse(numericString, styles);
numericString = "FFC8";
CallTryParse(numericString, NumberStyles.HexNumber);
numericString = "0x8F8C";
CallTryParse(numericString, NumberStyles.HexNumber);
}
private static void CallTryParse(string stringToConvert, NumberStyles styles)
{
ushort number;
bool result = UInt16.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 '10603' to 10603.
// Attempted conversion of '-10603' failed.
// Converted '29103.00' to 29103.
// Attempted conversion of '10345.72' failed.
// Converted '2210E-01' to 221.
// Attempted conversion of '9112E-01' failed.
// Converted '312E01' to 3120.
// Converted 'FFC8' to 65480.
// Attempted conversion of '0x8F8C' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) (styles: NumberStyles) =
match UInt16.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
do
let numericString = "10603"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-10603"
let styles = NumberStyles.None
callTryParse numericString styles
let numericString = "29103.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 = "2210E-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 = "FFC8"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x8F8C"
callTryParse numericString NumberStyles.HexNumber
// The example displays the following output:
// Converted '10603' to 10603.
// Attempted conversion of '-10603' failed.
// Converted '29103.00' to 29103.
// Attempted conversion of '10345.72' failed.
// Converted '2210E-01' to 221.
// Attempted conversion of '9112E-01' failed.
// Converted '312E01' to 3120.
// Converted 'FFC8' to 65480.
// Attempted conversion of '0x8F8C' failed.
Imports System.Globalization
Module Example
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "10603"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-10603"
styles = NumberStyles.None
CallTryParse(numericString, styles)
numericString = "29103.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10345.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "2210E-01"
styles = NumberStyles.Integer Or NumberStyles.AllowExponent
CallTryParse(numericString, styles)
numericString = "9112E-01"
CallTryParse(numericString, styles)
numericString = "312E01"
CallTryParse(numericString, styles)
numericString = "FFC8"
CallTryParse(numericString, NumberStyles.HexNumber)
numericString = "0x8F8C"
CallTryParse(numericString, NumberStyles.HexNumber)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As UShort
Dim result As Boolean = UInt16.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 '10603' to 10603.
' Attempted conversion of '-10603' failed.
' Converted '29103.00' to 29103.
' Attempted conversion of '10345.72' failed.
' Converted '2210E-01' to 221.
' Attempted conversion of '9112E-01' failed.
' Converted '312E01' to 3120.
' Converted 'FFC8' to 65480.
' Attempted conversion of '0x8F8C' failed.
Keterangan
Metode TryParse(String, NumberStyles, IFormatProvider, UInt16) seperti metode Parse(String, NumberStyles, IFormatProvider), kecuali bahwa metode tersebut tidak melemparkan pengecualian jika konversi gagal. Metode ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk menguji FormatException jika s
tidak valid dan tidak dapat diurai dengan sukses.
Parameter style
menentukan elemen gaya (seperti spasi kosong atau tanda positif atau negatif) yang diizinkan dalam parameter s
agar operasi penguraian berhasil. Ini harus merupakan kombinasi bendera bit dari enumerasi NumberStyles. Bergantung pada nilai style
, parameter s
dapat mencakup elemen berikut:
[ws] [$] [tanda] [digit,]digit[.fractional_digits][E[sign]exponential_digits][ws]
Item dalam tanda kurung siku ([ dan ]) bersifat opsional. Atau, jika parameter style
menyertakan AllowHexSpecifier, parameter s
dapat menyertakan elemen berikut:
[ws]hexdigits[ws]
Tabel berikut ini menjelaskan setiap elemen.
ws Spasi kosong opsional. Spasi kosong dapat muncul di awal s
jika style
menyertakan bendera NumberStyles.AllowLeadingWhite, atau di akhir s
jika style
menyertakan bendera NumberStyles.AllowTrailingWhite.
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh properti CurrencyPositivePattern objek NumberFormatInfo yang dikembalikan oleh metode GetFormat parameter provider
. Simbol mata uang dapat muncul dalam s
jika style
menyertakan bendera NumberStyles.AllowCurrencySymbol.
menandatangani Tanda opsional. Tanda dapat muncul di awal s
jika style
menyertakan bendera NumberStyles.AllowLeadingSign, dan dapat muncul di akhir s
jika style
menyertakan bendera NumberStyles.AllowTrailingSign. Tanda kurung dapat digunakan dalam s
untuk menunjukkan nilai negatif jika style
menyertakan bendera NumberStyles.AllowParentheses. 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 di s
jika style
menyertakan bendera NumberStyles.AllowThousands.
.
Simbol titik desimal khusus budaya. Simbol titik desimal budaya yang ditentukan oleh provider
dapat muncul di s
jika style
menyertakan bendera NumberStyles.AllowDecimalPoint.
fractional_digits Satu atau beberapa kemunculan digit 0. Digit pecahan dapat muncul di s
hanya jika style
menyertakan bendera NumberStyles.AllowDecimalPoint.
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 bendera NumberStyles.AllowExponent.
exponential_digits Urutan digit dari 0 hingga 9. Parameter s
dapat mewakili angka dalam notasi eksponensial jika style
menyertakan bendera NumberStyles.AllowExponent.
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.
Nota
Karakter NUL (U+0000) yang mengakhiri di s
diabaikan oleh operasi penguraian, terlepas dari nilai argumen style
.
String dengan digit desimal saja (yang sesuai dengan bendera NumberStyles.None) selalu berhasil diurai. Sebagian besar elemen kontrol anggota NumberStyles yang tersisa yang mungkin ada, tetapi tidak diharuskan ada, dalam string input ini. Tabel berikut menunjukkan bagaimana anggota NumberStyles individu memengaruhi elemen yang mungkin ada di s
.
Nilai NumberStyles non-komposit |
Elemen yang diizinkan dalam nilai selain digit |
---|---|
None | Digit desimal saja. |
AllowDecimalPoint | Titik desimal (.) dan elemen fractional_digits. Namun, fractional_digits hanya boleh 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 s mewakili angka dalam notasi eksponensial, angka tersebut tidak dapat memiliki komponen bukan nol pecahan. |
AllowLeadingWhite | Elemen ws di awal s . |
AllowTrailingWhite | Elemen |
AllowLeadingSign | Elemen tanda |
AllowTrailingSign | Elemen tanda tangan |
AllowParentheses | Elemen tanda |
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 s , menandatangani di awal s , dan simbol titik desimal (.). Parameter s juga dapat menggunakan notasi eksponensial. |
Number | ws, menandatangani, pemisah grup (,), dan titik desimal (.) elemen. |
Any | Semua elemen. Namun, s tidak dapat mewakili angka heksadesimal. |
Jika bendera NumberStyles.AllowHexSpecifier digunakan, s
harus berupa nilai heksadesimal. Digit heksadesimal yang valid adalah 0 hingga 9, hingga f, dan A hingga F. Awalan seperti "0x" tidak didukung dan menyebabkan operasi penguraian gagal. Satu-satunya bendera lain yang dapat hadir di style
adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles memiliki gaya komposit, HexNumber, yang mencakup kedua bendera spasi putih.)
Nota
Jika s
adalah representasi string dari angka heksadesimal, itu tidak dapat didahului oleh dekorasi apa pun (seperti 0x
atau &h
) yang membedakannya sebagai angka heksadesimal. Ini menyebabkan konversi gagal.
Parameter provider
adalah implementasi IFormatProvider. Metode GetFormat mengembalikan objek NumberFormatInfo yang menyediakan informasi khusus budaya tentang format s
. Parameter provider
dapat berupa salah satu hal berikut:
Objek CultureInfo yang mewakili budaya yang menyediakan informasi pemformatan. Metode GetFormat mengembalikan objek NumberFormatInfo yang menyediakan informasi pemformatan numerik untuk budaya tersebut.
Objek NumberFormatInfo yang menyediakan informasi pemformatan numerik. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)
Objek kustom yang mengimplementasikan IFormatProvider. Metode GetFormat membuat instans dan mengembalikan objek NumberFormatInfo yang menyediakan informasi pemformatan.
Jika provider
null
, objek NumberFormatInfo untuk budaya saat ini digunakan.