SByte.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 angka ke bilangan bulat bertanda 8-bit yang setara. Kode pengembalian menunjukkan apakah konversi berhasil atau gagal.
Overload
TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte) |
Mencoba mengurai rentang karakter UTF-8 menjadi nilai. |
TryParse(ReadOnlySpan<Char>, SByte) |
Mencoba mengonversi representasi rentang angka menjadi SByte setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil. |
TryParse(String, SByte) |
Mencoba mengonversi representasi string dari angka menjadi SByte setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte) |
Mencoba mengurai rentang karakter menjadi nilai. |
TryParse(String, IFormatProvider, SByte) |
Mencoba mengurai string ke dalam nilai. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, SByte) |
Mencoba mengurai rentang karakter UTF-8 menjadi nilai. |
TryParse(ReadOnlySpan<Byte>, SByte) |
Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat bertanda 8-bit yang setara. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, SByte) |
Mencoba mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke SByte setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil. |
TryParse(String, NumberStyles, IFormatProvider, SByte) |
Mencoba mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke SByte yang setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Mencoba mengurai rentang karakter UTF-8 menjadi nilai.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = IUtf8SpanParsable<System::SByte>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As SByte) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang karakter UTF-8 untuk diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text
.
- result
- SByte
Saat kembali, berisi hasil dari 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>, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Penting
API ini bukan kompatibel CLS.
Mencoba mengonversi representasi rentang angka menjadi SByte setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::SByte % result);
public static bool TryParse (ReadOnlySpan<char> s, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, out sbyte result);
static member TryParse : ReadOnlySpan<char> * sbyte -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * sbyte -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As SByte) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili angka yang akan dikonversi.
- result
- SByte
Ketika metode ini kembali, berisi nilai bilangan bulat bertanda 8-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 benar, atau mewakili angka yang kurang dari SByte.MinValue atau lebih besar dari SByte.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan result
akan ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
- Atribut
Berlaku untuk
TryParse(String, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Penting
API ini bukan kompatibel CLS.
Mencoba mengonversi representasi string dari angka menjadi SByte setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::SByte % result);
[System.CLSCompliant(false)]
public static bool TryParse (string s, out sbyte result);
public static bool TryParse (string? s, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, out sbyte result);
[<System.CLSCompliant(false)>]
static member TryParse : string * sbyte -> bool
static member TryParse : string * sbyte -> bool
Public Shared Function TryParse (s As String, ByRef result As SByte) As Boolean
Parameter
- s
- String
String yang berisi angka yang akan dikonversi.
- result
- SByte
Ketika metode ini kembali, berisi nilai bilangan bulat bertanda 8-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 benar, atau mewakili angka yang kurang dari SByte.MinValue atau lebih besar dari SByte.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan result
akan ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
- Atribut
Contoh
Contoh berikut mencoba mengonversi string dalam array menjadi SByte nilai dengan memanggil TryParse(String, SByte) metode .
string[] numericStrings = {"-3.6", "12.8", "+16.7", " 3 ", "(17)",
"-17", "+12", "18-", "987", "1,024", " 127 "};
sbyte number;
foreach (string numericString in numericStrings)
{
if (sbyte.TryParse(numericString, out number))
Console.WriteLine("Converted '{0}' to {1}.", numericString, number);
else
Console.WriteLine("Cannot convert '{0}' to an SByte.", numericString);
}
// The example displays the following output to the console:
// Cannot convert '-3.6' to an SByte.
// Cannot convert '12.8' to an SByte.
// Cannot convert '+16.7' to an SByte.
// Converted ' 3 ' to 3.
// Cannot convert '(17)' to an SByte.
// Converted '-17' to -17.
// Converted '+12' to 12.
// Cannot convert '18-' to an SByte.
// Cannot convert '987' to an SByte.
// Cannot convert '1,024' to an SByte.
// Converted ' 127 ' to 127.
open System
let numericStrings =
[| "-3.6"; "12.8"; "+16.7"; " 3 "; "(17)"
"-17"; "+12"; "18-"; "987"; "1,024"; " 127 " |]
for numericString in numericStrings do
match SByte.TryParse numericString with
| true, number ->
printfn $"Converted '{numericString}' to {number}."
| _ ->
printfn $"Cannot convert '{numericString}' to an SByte."
// The example displays the following output to the console:
// Cannot convert '-3.6' to an SByte.
// Cannot convert '12.8' to an SByte.
// Cannot convert '+16.7' to an SByte.
// Converted ' 3 ' to 3.
// Cannot convert '(17)' to an SByte.
// Converted '-17' to -17.
// Converted '+12' to 12.
// Cannot convert '18-' to an SByte.
// Cannot convert '987' to an SByte.
// Cannot convert '1,024' to an SByte.
// Converted ' 127 ' to 127.
Dim numericStrings() As String = {"-3.6", "12.8", "+16.7", " 3 ", _
"(17)", "-17", "+12", "18-", "987", _
"1,024", " 127 "}
Dim number As SByte
For Each numericString As String In numericStrings
If SByte.TryParse(numericString, number) Then
Console.WriteLine("Converted '{0}' to {1}.", numericString, number)
Else
Console.WriteLine("Cannot convert '{0}' to an SByte.", numericString)
End If
Next
' The example displays the following output to the console:
' Cannot convert '-3.6' to an SByte.
' Cannot convert '12.8' to an SByte.
' Cannot convert '+16.7' to an SByte.
' Converted ' 3 ' to 3.
' Cannot convert '(17)' to an SByte.
' Converted '-17' to -17.
' Converted '+12' to 12.
' Cannot convert '18-' to an SByte.
' Cannot convert '987' to an SByte.
' Cannot convert '1,024' to an SByte.
' Converted ' 127 ' to 127.
Keterangan
Metode SByte.TryParse(String, SByte) ini seperti SByte.Parse(String) metode , kecuali bahwa metode tersebut tidak melemparkan pengecualian jika konversi gagal. Metode ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk FormatException menguji jika value
tidak valid dan tidak dapat berhasil diurai.
Parameter s
harus menjadi representasi string dari angka desimal dalam formulir berikut:
[ws] [tanda tangan] digits[ws]
Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.
Elemen | Deskripsi |
---|---|
Ws | Spasi kosong opsional. |
sign | Tanda opsional. Karakter tanda yang valid ditentukan oleh NumberFormatInfo.NegativeSign properti dan NumberFormatInfo.PositiveSign dari budaya saat ini. |
Digit | Urutan digit desimal berkisar antara 0 hingga 9. |
Catatan
String yang ditentukan oleh value
parameter tidak boleh berisi pemisah grup atau pemisah desimal apa pun, dan tidak dapat memiliki bagian desimal.
Parameter 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 value
, panggil TryParse(String, NumberStyles, IFormatProvider, SByte) metode .
Parameter s
diurai dengan menggunakan informasi pemformatan dalam NumberFormatInfo objek untuk budaya saat ini. Untuk informasi selengkapnya, lihat NumberFormatInfo.CurrentInfo.
Kelebihan beban ini menginterpretasikan semua digit dalam value
parameter sebagai digit desimal. Untuk mengurai representasi string dari nomor heksadesimal, panggil TryParse(String, NumberStyles, IFormatProvider, SByte) kelebihan beban sebagai gantinya.
Lihat juga
- Sampel: Utilitas Pemformatan .NET Core WinForms (C#)
- Sampel: Utilitas Pemformatan .NET Core WinForms (Visual Basic)
Berlaku untuk
TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Mencoba mengurai rentang karakter menjadi nilai.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = ISpanParsable<System::SByte>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As SByte) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang karakter yang akan diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
- result
- SByte
Ketika metode ini kembali, berisi hasil dari 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, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Mencoba mengurai string ke dalam nilai.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = IParsable<System::SByte>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out sbyte result);
static member TryParse : string * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As SByte) As Boolean
Parameter
- s
- String
String yang akan diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
- result
- SByte
Ketika metode ini kembali, berisi hasil dari 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, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Mencoba mengurai rentang karakter UTF-8 menjadi nilai.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = System::Numerics::INumberBase<System::SByte>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As SByte) 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
- SByte
Saat kembali, berisi hasil dari 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>, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat bertanda 8-bit yang setara.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::SByte % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As SByte) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang yang berisi karakter UTF-8 yang mewakili angka yang akan dikonversi.
- result
- SByte
Ketika metode ini kembali, berisi nilai bilangan bulat bertanda 8-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, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Penting
API ini bukan kompatibel CLS.
Mencoba mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke SByte setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = System::Numerics::INumberBase<System::SByte>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As SByte) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili angka yang akan dikonversi.
- style
- NumberStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari s
. Nilai umum yang ditentukan adalah Integer.
- provider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang s
.
- result
- SByte
Ketika metode ini kembali, berisi nilai bilangan bulat bertanda 8-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 sesuai dengan style
format , atau mewakili angka yang kurang dari SByte.MinValue atau lebih besar dari SByte.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan result
akan ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
- Atribut
Berlaku untuk
TryParse(String, NumberStyles, IFormatProvider, SByte)
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
- Sumber:
- SByte.cs
Penting
API ini bukan kompatibel CLS.
- Alternatif kompatibel CLS
- System.Int16.TryParse(String, Int16)
Mencoba mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke SByte yang setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = System::Numerics::INumberBase<System::SByte>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out sbyte result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As SByte) As Boolean
Parameter
- s
- String
String yang mewakili angka yang akan dikonversi.
- style
- NumberStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari s
. Nilai umum yang ditentukan adalah Integer.
- provider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang s
.
- result
- SByte
Ketika metode ini kembali, berisi nilai bilangan bulat bertanda 8-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 sesuai dengan style
format , atau mewakili angka yang kurang dari SByte.MinValue atau lebih besar dari SByte.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan result
akan ditimpa.
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, SByte) 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 = "106";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-106";
styles = NumberStyles.None;
CallTryParse(numericString, styles);
numericString = "103.00";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "103.72";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10E-01";
styles = NumberStyles.Integer | NumberStyles.AllowExponent;
CallTryParse(numericString, styles);
numericString = "12E-01";
CallTryParse(numericString, styles);
numericString = "12E01";
CallTryParse(numericString, styles);
numericString = "C8";
CallTryParse(numericString, NumberStyles.HexNumber);
numericString = "0x8C";
CallTryParse(numericString, NumberStyles.HexNumber);
}
private static void CallTryParse(string stringToConvert, NumberStyles styles)
{
sbyte number;
bool result = SByte.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 '106' to 106.
// Attempted conversion of '-106' failed.
// Converted '103.00' to 103.
// Attempted conversion of '103.72' failed.
// Converted '10E-01' to 1.
// Attempted conversion of '12E-01' failed.
// Converted '12E01' to 120.
// Converted 'C8' to -56.
// Attempted conversion of '0x8C' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) styles =
match SByte.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
[<EntryPoint>]
let main _ =
let numericString = "106"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-106"
let styles = NumberStyles.None
callTryParse numericString styles
let numericString = "103.00"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "103.72"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "10E-01"
let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
callTryParse numericString styles
let numericString = "12E-01"
callTryParse numericString styles
let numericString = "12E01"
callTryParse numericString styles
let numericString = "C8"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x8C"
callTryParse numericString NumberStyles.HexNumber
0
// The example displays the following output:
// Converted '106' to 106.
// Attempted conversion of '-106' failed.
// Converted '103.00' to 103.
// Attempted conversion of '103.72' failed.
// Converted '10E-01' to 1.
// Attempted conversion of '12E-01' failed.
// Converted '12E01' to 120.
// Converted 'C8' to -56.
// Attempted conversion of '0x8C' failed.
Imports System.Globalization
Module StringParsing
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "106"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-106"
styles = NumberStyles.None
CallTryParse(numericString, styles)
numericString = "103.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "103.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10E-01"
styles = NumberStyles.Integer Or NumberStyles.AllowExponent
CallTryParse(numericString, styles)
numericString = "12E-01"
CallTryParse(numericString, styles)
numericString = "12E01"
CallTryParse(numericString, styles)
numericString = "C8"
CallTryParse(numericString, NumberStyles.HexNumber)
numericString = "0x8C"
CallTryParse(numericString, NumberStyles.HexNumber)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As SByte
Dim result As Boolean = SByte.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 '106' to 106.
' Attempted conversion of '-106' failed.
' Converted '103.00' to 103.
' Attempted conversion of '103.72' failed.
' Converted '10E-01' to 1.
' Attempted conversion of '12E-01' failed.
' Converted '12E01' to 120.
' Converted 'C8' to -56.
' Attempted conversion of '0x8C' failed.
Keterangan
Metode TryParse(String, NumberStyles, IFormatProvider, SByte) ini seperti Parse(String, NumberStyles, IFormatProvider) metode , kecuali bahwa metode tersebut tidak melemparkan pengecualian jika konversi gagal. Metode ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk FormatException menguji jika value
tidak valid dan tidak berhasil diurai.
Parameter style
menentukan elemen gaya (seperti spasi kosong atau tanda positif atau negatif) yang diizinkan dalam value
parameter agar operasi penguraian berhasil. Ini harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Bergantung pada nilai style
, value
parameter dapat mencakup elemen berikut:
[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
style
Jika parameter menyertakan AllowHexSpecifier, value
parameter dapat menyertakan elemen berikut:
[ws] hexdigits[ws]
Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.
Elemen | Deskripsi |
---|---|
Ws | Spasi kosong opsional. Spasi kosong dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingWhite bendera, atau di akhir value jika style menyertakan NumberStyles.AllowTrailingWhite bendera. |
$ | Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh CurrencyPositivePattern properti objek yang NumberFormatInfo dikembalikan oleh GetFormat metode provider parameter . Simbol mata uang dapat muncul jika value style menyertakan NumberStyles.AllowCurrencySymbol bendera. |
sign | Tanda opsional. Tanda dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan value untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera. |
Digit | Urutan digit dari 0 hingga 9. |
, | Pemisah grup khusus budaya. Pemisah grup budaya yang ditentukan oleh provider dapat muncul jika value style menyertakan NumberStyles.AllowThousands bendera. |
. | Simbol titik desimal khusus budaya. Simbol titik desimal dari budaya yang ditentukan oleh provider dapat muncul jika value style menyertakan NumberStyles.AllowDecimalPoint bendera. |
fractional_digits | Satu atau beberapa kemunculan digit 0. Digit pecahan dapat muncul value hanya jika style menyertakan NumberStyles.AllowDecimalPoint bendera. |
E | Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera . |
exponential_digits | Urutan digit dari 0 hingga 9. Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera . |
hexdigits | Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F. |
Catatan
Karakter NUL (U+0000) s
yang mengakhiri akan diabaikan oleh operasi penguraian, terlepas dari style
nilai argumen.
String dengan digit desimal saja (yang sesuai dengan NumberStyles.None bendera) selalu berhasil diurai. Sebagian besar elemen kontrol anggota yang tersisa NumberStyles yang mungkin ada, tetapi tidak diharuskan ada, dalam string input ini. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di value
.
Nilai non-komposit NumberStyles |
Elemen yang diizinkan dalam nilai selain digit |
---|---|
None | Digit desimal saja. |
AllowDecimalPoint | Titik desimal (.) dan elemen fractional_digits . Namun, fractional_digits harus hanya terdiri dari satu atau lebih 0 digit, atau metode mengembalikan false . |
AllowExponent | Karakter "e" atau "E", yang menunjukkan notasi eksponensial, bersama dengan exponential_digits. Jika value mewakili angka dalam notasi eksponensial, angka tersebut tidak dapat memiliki komponen pecahan bukan nol. |
AllowLeadingWhite | Elemen ws di awal value . |
AllowTrailingWhite | Elemen ws di akhir value . |
AllowLeadingSign | Elemen tanda sebelum digit. |
AllowTrailingSign | Elemen tanda setelahdigit. |
AllowParentheses | Elemen tanda tangan dalam bentuk tanda kurung yang menyertakan nilai numerik. |
AllowThousands | Elemen pemisah grup (,). |
AllowCurrencySymbol | Elemen mata uang ($). |
Currency | Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial. |
Float | Elemen ws di awal atau akhir , value tanda di awal value , dan simbol titik desimal (.). Parameter value juga dapat menggunakan notasi eksponensial. |
Number | Elemen ws, sign, group separator (,), dan decimal point (.). |
Any | Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal. |
NumberStyles.AllowHexSpecifier Jika bendera digunakan, value
harus berupa nilai heksadesimal. Digit heksadesimal yang valid adalah 0-9, a-f, dan A-F. Satu-satunya bendera lain yang dapat hadir adalah style
NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles memiliki gaya komposit, HexNumber, yang mencakup kedua bendera spasi putih.)
Catatan
Jika value
merupakan representasi string dari angka heksadesimal, itu tidak dapat didahului oleh dekorasi apa pun (seperti 0x
atau &h
) yang membedakannya sebagai angka heksadesimal. Ini menyebabkan konversi gagal.
Parameter provider
adalah IFormatProvider implementasi. Metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi khusus budaya tentang format value
. Parameter provider
dapat berupa salah satu hal berikut:
Objek CultureInfo yang mewakili budaya yang memasok informasi pemformatan. Metodenya GetFormat mengembalikan objek yang menyediakan informasi pemformatan numerik untuk budaya tersebut NumberFormatInfo .
Objek NumberFormatInfo yang menyediakan informasi pemformatan numerik. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)
Objek kustom yang mengimplementasikan IFormatProvider. Metodenya GetFormat membuat instans NumberFormatInfo dan mengembalikan objek yang menyediakan informasi pemformatan.
Jika provider
adalah null
, NumberFormatInfo objek untuk budaya saat ini digunakan.
Lihat juga
Berlaku untuk
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk