Int16.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 bertanda 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
Overload
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16) |
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai. |
TryParse(ReadOnlySpan<Char>, Int16) |
Mengonversi representasi rentang angka dalam format khusus budaya ke bilangan bulat bertanda 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(String, Int16) |
Mengonversi representasi string dari angka ke bilangan bulat bertanda 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16) |
Mencoba mengurai rentang karakter menjadi nilai. |
TryParse(String, IFormatProvider, Int16) |
Mencoba mengurai string ke dalam nilai. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int16) |
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai. |
TryParse(ReadOnlySpan<Byte>, Int16) |
Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat bertanda 16-bit yang setara. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int16) |
Mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(String, NumberStyles, IFormatProvider, Int16) |
Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = IUtf8SpanParsable<short>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out short result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * int16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Short) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang karakter UTF-8 untuk diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text
.
- result
- Int16
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>, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
Mengonversi representasi rentang angka dalam format khusus budaya ke bilangan bulat bertanda 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] short % result);
public static bool TryParse (ReadOnlySpan<char> s, out short result);
static member TryParse : ReadOnlySpan<char> * int16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Short) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili angka yang akan dikonversi.
- result
- Int16
Ketika metode ini kembali, berisi nilai bilangan bulat yang 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 atau mewakili angka yang kurang dari Int16.MinValue atau lebih besar dari Int16.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
.
Berlaku untuk
TryParse(String, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
Mengonversi representasi string dari angka ke bilangan bulat bertanda 16-bit yang setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] short % result);
public static bool TryParse (string s, out short result);
public static bool TryParse (string? s, out short result);
static member TryParse : string * int16 -> bool
Public Shared Function TryParse (s As String, ByRef result As Short) As Boolean
Parameter
- s
- String
String yang berisi angka yang akan dikonversi.
- result
- Int16
Ketika metode ini kembali, berisi nilai bilangan bulat yang 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, bukan format yang benar, atau mewakili angka yang kurang dari int16.MinValue atau lebih besar dari Int16.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
.
Contoh
Contoh berikut memanggil metode Int16.TryParse(String, Int16) dengan sejumlah nilai string yang berbeda.
using System;
public class StringParsing
{
public static void Main()
{
TryToParse(null);
TryToParse("16051");
TryToParse("9432.0");
TryToParse("16,667");
TryToParse(" -322 ");
TryToParse("+4302");
TryToParse("(100);");
TryToParse("01FA");
}
private static void TryToParse(string value)
{
short number;
bool result = Int16.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}
}
// The example displays the following output to the console:
// Attempted conversion of '' failed.
// Converted '16051' to 16051.
// Attempted conversion of '9432.0' failed.
// Attempted conversion of '16,667' failed.
// Converted ' -322 ' to -322.
// Converted '+4302' to 4302.
// Attempted conversion of '(100)' failed.
// Attempted conversion of '01FA' failed.
open System
let tryToParse (value: string) =
match Int16.TryParse value with
| true, number -> printfn "Converted '{value}' to {number}."
| _ ->
let value = if isNull value then "" else value
printfn $"Attempted conversion of '{value}' failed."
tryToParse null
tryToParse "16051"
tryToParse "9432.0"
tryToParse "16,667"
tryToParse " -322 "
tryToParse "+4302"
tryToParse "(100);"
tryToParse "01FA"
// The example displays the following output to the console:
// Attempted conversion of '' failed.
// Converted '16051' to 16051.
// Attempted conversion of '9432.0' failed.
// Attempted conversion of '16,667' failed.
// Converted ' -322 ' to -322.
// Converted '+4302' to 4302.
// Attempted conversion of '(100)' failed.
// Attempted conversion of '01FA' failed.
Module StringParsing
Public Sub Main()
TryToParse(Nothing)
TryToParse("16051")
TryToParse("9432.0")
TryToParse("16,667")
TryToParse(" -322 ")
TryToParse("+4302")
TryToParse("(100)")
TryToParse("01FA")
End Sub
Private Sub TryToParse(value As String)
Dim number As Int16
Dim result As Boolean = Int16.TryParse(value, number)
If result Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
If value Is Nothing Then value = ""
Console.WriteLine("Attempted conversion of '{0}' failed.", value)
End If
End Sub
End Module
' The example displays the following output to the console:
' Attempted conversion of '' failed.
' Converted '16051' to 16051.
' Attempted conversion of '9432.0' failed.
' Attempted conversion of '16,667' failed.
' Converted ' -322 ' to -322.
' Converted '+4302' to 4302.
' Attempted conversion of '(100)' failed.
' Attempted conversion of '01FA' failed.
Beberapa string yang tidak dapat dikonversi oleh metode TryParse(String, Int16) dalam contoh ini adalah:
"9432.0". Konversi gagal karena string tidak boleh berisi pemisah desimal; harus berisi digit integral saja.
"16,667". Konversi gagal karena string tidak dapat berisi pemisah grup; harus berisi digit integral saja.
"(100)". Konversi gagal karena string tidak dapat berisi tanda negatif selain yang ditentukan oleh properti NumberFormatInfo.NegativeSign dan NumberFormatInfo.NumberNegativePattern budaya saat ini.
"01FA". Konversi gagal karena string tidak boleh berisi digit heksadesimal; harus berisi digit desimal saja.
Keterangan
Metode Int16.TryParse(String, Int16) berbeda dari metode Int16.Parse(String) dengan mengembalikan nilai Boolean yang menunjukkan apakah operasi penguraian berhasil alih-alih mengembalikan nilai Int16 yang diurai. 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 dalam formulir:
[ws] [sign]digits[ws]
Item dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.
Elemen | Deskripsi |
---|---|
ws | Spasi kosong opsional. |
tanda tangan |
Tanda opsional. |
digit | Urutan digit mulai dari 0 hingga 9. |
Parameter s
ditafsirkan menggunakan gaya NumberStyles.Integer. Selain digit desimal, hanya spasi di depan dan belakang bersama dengan tanda di depan yang diizinkan. Untuk secara eksplisit menentukan elemen gaya bersama dengan informasi pemformatan khusus budaya yang dapat ada di s
, gunakan metode Int16.TryParse(String, NumberStyles, IFormatProvider, Int16).
Parameter s
diurai menggunakan informasi pemformatan dalam objek NumberFormatInfo yang diinisialisasi untuk budaya sistem saat ini. Untuk informasi selengkapnya, lihat CurrentInfo.
Kelebihan metode TryParse ini menginterpretasikan semua digit dalam parameter s
sebagai digit desimal. Untuk mengurai representasi string dari nomor heksadesimal, panggil Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) kelebihan beban.
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, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
Mencoba mengurai rentang karakter menjadi nilai.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = ISpanParsable<short>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out short result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * int16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Short) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang karakter untuk diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
- result
- Int16
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, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
Mencoba mengurai string ke dalam nilai.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = IParsable<short>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out short result);
static member TryParse : string * IFormatProvider * int16 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Short) As Boolean
Parameter
- s
- String
String yang akan diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
- result
- Int16
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, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.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] short % result) = System::Numerics::INumberBase<short>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out short result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * int16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Short) 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
- Int16
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>, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat bertanda 16-bit yang setara.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] short % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out short result);
static member TryParse : ReadOnlySpan<byte> * int16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Short) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang yang berisi karakter UTF-8 yang mewakili angka yang akan dikonversi.
- result
- Int16
Ketika metode ini kembali, berisi nilai bilangan bulat bertanda 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, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
Mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 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] short % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = System::Numerics::INumberBase<short>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out short result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out short result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * int16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Short) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili angka yang akan dikonversi. Rentang ditafsirkan menggunakan gaya yang ditentukan oleh style
.
- style
- NumberStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di s
. Nilai umum yang akan ditentukan adalah Integer.
- provider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang s
.
- result
- Int16
Ketika metode ini kembali, berisi nilai bilangan bulat yang 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 format dengan style
, atau mewakili angka yang kurang dari int16.MinValue atau lebih besar dari Int16.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
.
Berlaku untuk
TryParse(String, NumberStyles, IFormatProvider, Int16)
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
- Sumber:
- Int16.cs
Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 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] short % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = System::Numerics::INumberBase<short>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out short result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out short result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * int16 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Short) As Boolean
Parameter
- s
- String
String yang berisi angka yang akan dikonversi. String ditafsirkan menggunakan gaya yang ditentukan oleh style
.
- style
- NumberStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di s
. Nilai umum yang akan ditentukan adalah Integer.
- provider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang s
.
- result
- Int16
Ketika metode ini kembali, berisi nilai bilangan bulat yang 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 format dengan style
, atau mewakili angka yang kurang dari int16.MinValue atau lebih besar dari Int16.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
.
Pengecualian
Contoh
Contoh berikut memanggil metode Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) dengan sejumlah nilai string yang berbeda.
using System;
using System.Globalization;
public class StringParsing
{
public static void Main()
{
string numericString;
NumberStyles styles;
numericString = "10677";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-30677";
styles = NumberStyles.None;
CallTryParse(numericString, styles);
numericString = "10345.00";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10345.72";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "22,593";
styles = NumberStyles.Integer | NumberStyles.AllowThousands;
CallTryParse(numericString, styles);
numericString = "12E-01";
styles = NumberStyles.Integer | NumberStyles.AllowExponent;
CallTryParse(numericString, styles);
numericString = "12E03";
CallTryParse(numericString, styles);
numericString = "80c1";
CallTryParse(numericString, NumberStyles.HexNumber);
numericString = "0x80C1";
CallTryParse(numericString, NumberStyles.HexNumber);
}
private static void CallTryParse(string stringToConvert, NumberStyles styles)
{
short number;
bool result = Int16.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 to the console:
// Converted '10677' to 10677.
// Attempted conversion of '-30677' failed.
// Converted '10345.00' to 10345.
// Attempted conversion of '10345.72' failed.
// Converted '22,593' to 22593.
// Attempted conversion of '12E-01' failed.
// Converted '12E03' to 12000.
// Converted '80c1' to -32575.
// Attempted conversion of '0x80C1' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) (styles: NumberStyles) =
match Int16.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
[<EntryPoint>]
let main _ =
let numericString = "10677"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-30677"
let styles = NumberStyles.None
callTryParse numericString styles
let numericString = "10345.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 = "22,593"
let styles = NumberStyles.Integer ||| NumberStyles.AllowThousands
callTryParse numericString styles
let numericString = "12E-01"
let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
callTryParse numericString styles
let numericString = "12E03"
callTryParse numericString styles
let numericString = "80c1"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x80C1"
callTryParse numericString NumberStyles.HexNumber
0
// The example displays the following output to the console:
// Converted '10677' to 10677.
// Attempted conversion of '-30677' failed.
// Converted '10345.00' to 10345.
// Attempted conversion of '10345.72' failed.
// Converted '22,593' to 22593.
// Attempted conversion of '12E-01' failed.
// Converted '12E03' to 12000.
// Converted '80c1' to -32575.
// Attempted conversion of '0x80C1' failed.
Imports System.Globalization
Module StringParsing
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "10677"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-30677"
styles = NumberStyles.None
CallTryParse(numericString, styles)
numericString = "10345.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10345.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "22,593"
styles = NumberStyles.Integer Or NumberStyles.AllowThousands
CallTryParse(numericString, styles)
numericString = "12E-01"
styles = NumberStyles.Integer Or NumberStyles.AllowExponent
CallTryParse(numericString, styles)
numericString = "12E03"
CallTryParse(numericString, styles)
numericString = "80c1"
CallTryParse(numericString, NumberStyles.HexNumber)
numericString = "0x80C1"
CallTryParse(numericString, NumberStyles.HexNumber)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As Short
Dim result As Boolean = Int16.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 '10677' to 10677.
' Attempted conversion of '-30677' failed.
' Converted '10345.00' to 10345.
' Attempted conversion of '10345.72' failed.
' Converted '22,593' to 22593.
' Attempted conversion of '12E-01' failed.
' Converted '12E03' to 12000.
' Converted '80c1' to -32575.
' Attempted conversion of '0x80C1' failed.
Keterangan
Metode Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) berbeda dari metode Int16.Parse(String, NumberStyles, IFormatProvider) dengan mengembalikan nilai Boolean yang menunjukkan apakah operasi penguraian berhasil alih-alih mengembalikan nilai Int16 yang diurai. Ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk menguji FormatException jika s
tidak valid dan tidak dapat berhasil diurai.
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 gaya, parameter s
dapat mencakup elemen berikut:
[ws] [$] [tanda tangan] [digits,]digits[.fractional_digits][e[sign]digits][ws]
Atau, jika parameter style
mencakup NumberStyles.AllowHexSpecifier:
[ws]hexdigits[ws]
Item dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.
Elemen | Deskripsi |
---|---|
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. |
tanda tangan |
Tanda opsional. |
digit | Urutan digit dari 0 hingga 9. |
, | Pemisah ribuan khusus budaya. Pemisah ribuan 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. 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 tetapi tidak diperlukan untuk hadir 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 s selain digit |
---|---|
NumberStyles.None | Digit desimal saja. |
NumberStyles.AllowDecimalPoint |
. dan elemen fractional_digits. Namun, fractional_digits hanya boleh terdiri dari satu atau lebih 0 digit atau metode mengembalikan false . |
NumberStyles.AllowExponent | Parameter s juga dapat menggunakan notasi eksponensial. Jika s mewakili angka dalam notasi eksponensial, angka tersebut harus mewakili bilangan bulat dalam rentang jenis data Int16 tanpa komponen pecahan bukan nol. |
NumberStyles.AllowLeadingWhite | Elemen ws di awal . |
NumberStyles.AllowTrailingWhite | Elemen |
NumberStyles.AllowLeadingSign | Tanda dapat muncul sebelum digit. |
NumberStyles.AllowTrailingSign | Tanda dapat muncul setelah digit. |
NumberStyles.AllowParentheses | Elemen tanda |
NumberStyles.AllowThousands | Elemen ,. |
NumberStyles.AllowCurrencySymbol | Elemen $. |
NumberStyles.Currency | Semua elemen. Parameter |
NumberStyles.Float | Elemen ws di awal atau akhir s , menandatangani di awal s , dan . simbol. Parameter s juga dapat menggunakan notasi eksponensial. |
NumberStyles.Number | Tanda ws, tanda , pemisah ribuan (,), dan elemen titik desimal (.). |
NumberStyles.Any | Semua gaya, kecuali s tidak dapat mewakili angka heksadesimal. |
Jika bendera NumberStyles.AllowHexSpecifier digunakan, s
harus berupa nilai heksadesimal tanpa awalan. Misalnya, "9AF3" berhasil diurai, tetapi "0x9AF3" tidak. Satu-satunya bendera lain yang dapat hadir di style
adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles memiliki gaya komposit, NumberStyles.HexNumber, yang mencakup kedua bendera spasi putih.)
Parameter provider
adalah implementasi IFormatProvider, seperti objek CultureInfo atau objek NumberFormatInfo, yang metode GetFormat-nya mengembalikan objek NumberFormatInfo. Objek NumberFormatInfo menyediakan informasi khusus budaya tentang format s
. Jika provider
null
, objek NumberFormatInfo untuk budaya saat ini digunakan.