SByte.TryParse Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Konwertuje ciąg reprezentujący liczbę na odpowiadającą mu 8-bitową liczbę całkowitą ze znakiem. Kod powrotu wskazuje, czy konwersja zakończyła się pomyślnie, czy nie powiodła się.
Przeciążenia
TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte) |
Próbuje przeanalizować zakres znaków UTF-8 w wartości. |
TryParse(ReadOnlySpan<Char>, SByte) |
Próbuje przekonwertować reprezentację zakresu liczby na równoważną SByte i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie. |
TryParse(String, SByte) |
Próbuje przekonwertować reprezentację ciągu liczby na jej SByte odpowiednik i zwraca wartość wskazującą, czy konwersja powiodła się. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte) |
Próbuje przeanalizować zakres znaków w wartości. |
TryParse(String, IFormatProvider, SByte) |
Próbuje przeanalizować ciąg w wartości. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, SByte) |
Próbuje przeanalizować zakres znaków UTF-8 w wartości. |
TryParse(ReadOnlySpan<Byte>, SByte) |
Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na odpowiednik 8-bitowej liczby całkowitej ze znakiem. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, SByte) |
Próbuje przekonwertować reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na jej SByte odpowiednik i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie. |
TryParse(String, NumberStyles, IFormatProvider, SByte) |
Próbuje przekonwertować reprezentację ciągu liczby w określonym stylu i formacie specyficznym dla kultury na jego SByte odpowiednik i zwraca wartość wskazującą, czy konwersja powiodła się. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Próbuje przeanalizować zakres znaków UTF-8 w wartości.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres znaków UTF-8 do analizy.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.utf8Text
- result
- SByte
Po powrocie utf8Text
zawiera wynik pomyślnego analizowania lub niezdefiniowanej wartości w przypadku błędu.
Zwraca
true
jeśli utf8Text
została pomyślnie przeanalizowana; w przeciwnym razie . false
Dotyczy
TryParse(ReadOnlySpan<Char>, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Próbuje przekonwertować reprezentację zakresu liczby na równoważną SByte i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający znaki reprezentujące liczbę do konwersji.
- result
- SByte
Gdy ta metoda zwraca wartość, zawiera 8-bitową liczbę całkowitą ze znakiem, która jest równoważna liczbie zawartej w s
przypadku pomyślnej konwersji lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s
parametr ma null
wartość lub Empty, nie ma poprawnego formatu lub reprezentuje liczbę mniejszą niż SByte.MinValue lub większą niż SByte.MaxValue. Ten parametr jest przekazywany niezainicjowany; każda wartość pierwotnie podana w result
zostanie zastąpiona.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; w przeciwnym razie . false
- Atrybuty
Dotyczy
TryParse(String, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Próbuje przekonwertować reprezentację ciągu liczby na jej SByte odpowiednik i zwraca wartość wskazującą, czy konwersja powiodła się.
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
Parametry
- s
- String
Ciąg zawierający liczbę, którą należy przekształcić.
- result
- SByte
Gdy ta metoda zwraca wartość, zawiera 8-bitową liczbę całkowitą ze znakiem, która jest równoważna liczbie zawartej w s
przypadku pomyślnej konwersji lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s
parametr ma null
wartość lub Empty, nie ma poprawnego formatu lub reprezentuje liczbę mniejszą niż SByte.MinValue lub większą niż SByte.MaxValue. Ten parametr jest przekazywany niezainicjowany; każda wartość pierwotnie podana w result
zostanie zastąpiona.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; w przeciwnym razie . false
- Atrybuty
Przykłady
Poniższy przykład próbuje przekonwertować ciągi w tablicy na SByte wartości, wywołując metodę TryParse(String, SByte) .
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.
Uwagi
Metoda jest podobna SByte.TryParse(String, SByte)SByte.Parse(String) do metody , z tą różnicą, że nie zgłasza wyjątku, jeśli konwersja nie powiedzie się. Ta metoda eliminuje konieczność użycia obsługi wyjątków w celu przetestowania elementu FormatException , jeśli value
jest nieprawidłowy i nie można go pomyślnie przeanalizować.
Parametr s
powinien być ciągiem reprezentującym liczbę dziesiętną w następującej postaci:
[ws] [podpis] digits[ws]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W tabeli poniżej opisano każdy element.
Element | Opis |
---|---|
Ws | Opcjonalny odstęp. |
sign | Opcjonalny znak. Prawidłowe znaki są określane przez NumberFormatInfo.NegativeSign właściwości i NumberFormatInfo.PositiveSign bieżącej kultury. |
Cyfr | Sekwencja cyfr dziesiętnych od 0 do 9. |
Uwaga
Ciąg określony przez value
parametr nie może zawierać żadnych separatorów grup ani separatora dziesiętnego i nie może mieć części dziesiętnej.
Parametr s
jest interpretowany przy użyciu NumberStyles.Integer stylu. Poza cyframi dziesiętnymi dopuszcza się tylko spacje początkowe i końcowe z wiodącym znakiem. Aby jawnie zdefiniować elementy stylu z informacjami o formatowaniu specyficznymi dla kultury, które mogą być obecne w value
pliku , wywołaj metodę TryParse(String, NumberStyles, IFormatProvider, SByte) .
Parametr s
jest analizowany przy użyciu informacji o formatowaniu w NumberFormatInfo obiekcie dla bieżącej kultury. Aby uzyskać więcej informacji, zobacz NumberFormatInfo.CurrentInfo.
To przeciążenie interpretuje wszystkie cyfry w parametrze value
jako cyfry dziesiętne. Aby przeanalizować reprezentację ciągu liczby szesnastkowej, wywołaj zamiast tego TryParse(String, NumberStyles, IFormatProvider, SByte) przeciążenie.
Zobacz też
- Przykład: .NET Core WinForms Formatting Utility (C#)
- Przykład: .NET Core WinForms Formatting Utility (Visual Basic)
Dotyczy
TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Próbuje przeanalizować zakres znaków w wartości.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres znaków do przeanalizowania.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.s
- result
- SByte
Gdy ta metoda zwraca wartość , zawiera wynik pomyślnej analizy s
, lub niezdefiniowanej wartości w przypadku błędu.
Zwraca
true
jeśli s
została pomyślnie przeanalizowana; w przeciwnym razie . false
Dotyczy
TryParse(String, IFormatProvider, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Próbuje przeanalizować ciąg w wartości.
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
Parametry
- s
- String
Ciąg do analizy.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.s
- result
- SByte
Gdy ta metoda zwraca wartość , zawiera wynik pomyślnej analizy s
lub niezdefiniowanej wartości w przypadku błędu.
Zwraca
true
jeśli s
została pomyślnie przeanalizowana; w przeciwnym razie . false
Dotyczy
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Próbuje przeanalizować zakres znaków UTF-8 w wartości.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres znaków UTF-8 do analizy.
- style
- NumberStyles
Bitowa kombinacja stylów liczbowych, które mogą być obecne w .utf8Text
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.utf8Text
- result
- SByte
Po powrocie utf8Text
zawiera wynik pomyślnego analizowania lub niezdefiniowanej wartości w przypadku błędu.
Zwraca
true
jeśli utf8Text
została pomyślnie przeanalizowana; w przeciwnym razie . false
Dotyczy
TryParse(ReadOnlySpan<Byte>, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na odpowiednik 8-bitowej liczby całkowitej ze znakiem.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres zawierający znaki UTF-8 reprezentujące liczbę do konwersji.
- result
- SByte
Gdy ta metoda zwraca wartość, zawiera 8-bitową liczbę całkowitą ze znakiem równoważną liczbie zawartej w utf8Text
, jeśli konwersja powiodła się lub zero, jeśli konwersja nie powiodła się. Ten parametr jest przekazywany niezainicjowany; każda wartość pierwotnie podana w wyniku zostanie zastąpiona.
Zwraca
true
jeśli utf8Text
pomyślnie przekonwertowano; w przeciwnym razie . false
Dotyczy
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Próbuje przekonwertować reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na jego SByte odpowiednik i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający znaki reprezentujące liczbę do konwersji.
- style
- NumberStyles
Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format .s
Typową wartością do określenia jest Integer.
- provider
- IFormatProvider
Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s
- result
- SByte
Gdy ta metoda zwróci wartość całkowitą ze znakiem 8-bitowym, równoważną liczbie zawartej w s
metodzie , jeśli konwersja powiodła się lub zero, jeśli konwersja nie powiodła się. Konwersja nie powiedzie się, jeśli s
parametr ma null
wartość lub Empty, nie jest w formacie zgodnym z parametrem style
lub reprezentuje liczbę mniejszą niż SByte.MinValue lub większą niż SByte.MaxValue. Ten parametr jest przekazywany niezainicjowany; każda wartość pierwotnie podana w result
zostanie zastąpiona.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; w przeciwnym razie . false
- Atrybuty
Dotyczy
TryParse(String, NumberStyles, IFormatProvider, SByte)
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
- Źródło:
- SByte.cs
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
- Alternatywa zgodna ze specyfikacją CLS
- System.Int16.TryParse(String, Int16)
Próbuje przekonwertować reprezentację ciągu liczby w określonym stylu i formacie specyficznym dla kultury na SByte jego odpowiednik i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.
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
Parametry
- s
- String
Ciąg reprezentujący liczbę do konwersji.
- style
- NumberStyles
Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format .s
Typową wartością do określenia jest Integer.
- provider
- IFormatProvider
Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s
- result
- SByte
Gdy ta metoda zostanie zwrócona, zawiera wartość całkowitą z podpisem 8-bitowym równoważną liczbie zawartej w s
metodzie , jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s
parametr ma null
wartość lub Empty, nie jest w formacie zgodnym z parametrem style
lub reprezentuje liczbę mniejszą niż SByte.MinValue lub większą niż SByte.MaxValue. Ten parametr jest przekazywany jako niezainicjowany; każda wartość pierwotnie dostarczona w pliku result
zostanie zastąpiona.
Zwraca
true
jeśli s
pomyślnie została przekonwertowana; w przeciwnym razie false
.
- Atrybuty
Wyjątki
style
nie jest wartością NumberStyles .
-lub-
style
nie jest kombinacją AllowHexSpecifier wartości i HexNumber .
Przykłady
Poniższy przykład wywołuje metodę TryParse(String, NumberStyles, IFormatProvider, SByte) z wieloma różnymi ciągami i NumberStyles wartościami.
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.
Uwagi
Metoda jest podobna TryParse(String, NumberStyles, IFormatProvider, SByte)Parse(String, NumberStyles, IFormatProvider) do metody, z tą różnicą, że nie zgłasza wyjątku, jeśli konwersja nie powiedzie się. Ta metoda eliminuje konieczność użycia obsługi wyjątków do testowania, FormatException jeśli value
jest nieprawidłowy i nie można go pomyślnie przeanalizować.
Parametr style
definiuje elementy stylu (takie jak biały znak lub znak dodatni lub ujemny), które są dozwolone w parametrze value
, aby operacja analizy zakończyła się powodzeniem. Musi być kombinacją flag bitowych z wyliczenia NumberStyles . W zależności od wartości parametr może style
value
zawierać następujące elementy:
[ws] [][$znak][cyfry,]cyfry[.fractional_digits][E[znak]exponential_digits][ws]
style
Jeśli parametr zawiera AllowHexSpecifierparametr , value
parametr może zawierać następujące elementy:
[ws] hexdigits[ws]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W tabeli poniżej opisano każdy element.
Element | Opis |
---|---|
Ws | Opcjonalny odstęp. Białe znaki mogą pojawić się na początku value , jeśli style zawiera flagę NumberStyles.AllowLeadingWhite lub na końcu value , jeśli style zawiera flagę NumberStyles.AllowTrailingWhite . |
$ | Symbol waluty specyficzny dla kultury. Jego pozycja w ciągu jest definiowana przez CurrencyPositivePattern właściwość NumberFormatInfo obiektu zwróconego przez GetFormat metodę parametru provider . Symbol waluty może pojawić się, value jeśli style zawiera flagę NumberStyles.AllowCurrencySymbol . |
sign | Opcjonalny znak. Znak może pojawić się na początku, value jeśli style zawiera flagę NumberStyles.AllowLeadingSign i może pojawić się na końcu value , jeśli style zawiera flagę NumberStyles.AllowTrailingSign . Nawiasy mogą służyć do wskazywania wartości ujemnej, value jeśli style zawiera flagę NumberStyles.AllowParentheses . |
Cyfr | Sekwencja cyfr od 0 do 9. |
, | Separator grupy specyficzny dla kultury. Separator grupy określonej przez provider kulturę może pojawić się, value jeśli style zawiera flagę NumberStyles.AllowThousands . |
. | Symbol dziesiętny specyficzny dla kultury. Symbol punktu dziesiętnego kultury określonej przez provider może pojawić się, value jeśli style zawiera flagę NumberStyles.AllowDecimalPoint . |
fractional_digits | Jedno lub więcej wystąpień cyfry 0. Cyfry ułamkowe mogą być wyświetlane tylko wtedy value , gdy style zawiera flagę NumberStyles.AllowDecimalPoint . |
E | Znak „e” lub „E”, który wskazuje, że wartość jest reprezentowana w zapisie wykładniczym (naukowym). Parametr value może reprezentować liczbę w notacji wykładniczej, jeśli style zawiera flagę NumberStyles.AllowExponent . |
exponential_digits | Sekwencja cyfr od 0 do 9. Parametr value może reprezentować liczbę w notacji wykładniczej, jeśli style zawiera flagę NumberStyles.AllowExponent . |
hexdigits | Sekwencja cyfr szesnastkowych od 0 do f lub od 0 do F. |
Uwaga
Wszelkie znaki zakończenia NUL (U+0000) w obiekcie s
są ignorowane przez operację analizowania, niezależnie od wartości argumentu style
.
Ciąg z cyframi dziesiętnymi (odpowiadający NumberStyles.None flagi) zawsze jest analizowanych pomyślnie. Większość pozostałych NumberStyles elementów członkowskich kontrolki, które mogą być obecne, ale nie są wymagane do obecności, w tym ciągu wejściowym. Poniższa tabela wskazuje, jak poszczególne NumberStyles elementy członkowskie wpływają na elementy, które mogą być obecne w elemecie value
.
Wartości nieskładne NumberStyles |
Dodatkowe (poza cyframi) elementy dozwolone w wartości |
---|---|
None | Tylko cyfry dziesiętne. |
AllowDecimalPoint | Elementy dziesiętne (.) i fractional_digits . Jednak fractional_digits musi składać się tylko z co najmniej jednej cyfry lub zwraca false metodę . |
AllowExponent | Znak "e" lub "E", który wskazuje notację wykładniczą wraz z exponential_digits. Jeśli value reprezentuje liczbę w notacji wykładniczej, nie może mieć składnika niezerowego, ułamkowego. |
AllowLeadingWhite | Element ws na początku value . |
AllowTrailingWhite | Element ws na końcu value elementu . |
AllowLeadingSign | Element znaku przed cyframi. |
AllowTrailingSign | Element znaku po cyfrach. |
AllowParentheses | Element znaku w postaci nawiasów otaczających wartość liczbową. |
AllowThousands | Element separatora grupy (,). |
AllowCurrencySymbol | Element waluty ($). |
Currency | Wszystkie elementy. value Nie można jednak reprezentować liczby szesnastkowej ani liczby w notacji wykładniczej. |
Float | Element ws na początku lub na końcu value , znak na początku value , i symbol dziesiętny (.). Parametr value może również używać notacji wykładniczej. |
Number | Elementy ws, sign, group separator (,) i dziesiętne (.). |
Any | Wszystkie elementy. value Nie można jednak reprezentować liczby szesnastkowej. |
Jeśli jest używana flaga NumberStyles.AllowHexSpecifier , value
musi być wartością szesnastkową. Prawidłowe cyfry szesnastkowe to 0–9, a-f i A-F. Jedynymi innymi flagami, które mogą być obecne, style
są NumberStyles.AllowLeadingWhite i NumberStyles.AllowTrailingWhite. (Wyliczenie NumberStyles ma styl złożony, HexNumber, który zawiera obie flagi odstępu).
Uwaga
Jeśli value
jest reprezentacją ciągu liczby szesnastkowej, nie może być poprzedzona żadną dekoracją (taką jak 0x
lub &h
), która rozróżnia ją jako liczbę szesnastkowa. To powoduje niepowodzenie konwersji.
Parametr provider
jest implementacją IFormatProvider . Metoda GetFormat zwraca NumberFormatInfo obiekt, który udostępnia informacje specyficzne dla kultury dotyczące formatu value
. Parametr provider
może być jednym z następujących:
CultureInfo Obiekt reprezentujący kulturę, która dostarcza informacje o formatowaniu. Metoda GetFormat zwraca NumberFormatInfo obiekt, który udostępnia informacje o formatowaniu liczbowym dla tej kultury.
NumberFormatInfo Obiekt, który udostępnia informacje o formatowaniu liczbowym. (Jego implementacja GetFormat po prostu zwraca się).
Obiekt niestandardowy, który implementuje IFormatProviderelement . Metoda GetFormat tworzy wystąpienie i zwraca NumberFormatInfo obiekt, który udostępnia informacje o formatowaniu.
Jeśli provider
jest to null
, NumberFormatInfo używany jest obiekt bieżącej kultury.
Zobacz też
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla