Int16.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 reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej ze znakiem. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.
Przeciążenia
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16) |
Próbuje przeanalizować zakres znaków UTF-8 w wartość. |
TryParse(ReadOnlySpan<Char>, Int16) |
Konwertuje reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik liczby całkowitej ze znakiem 16-bitowym. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie. |
TryParse(String, Int16) |
Konwertuje reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej ze znakiem. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16) |
Próbuje przeanalizować zakres znaków w wartości. |
TryParse(String, IFormatProvider, Int16) |
Próbuje przeanalizować ciąg w wartość. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int16) |
Próbuje przeanalizować zakres znaków UTF-8 w wartość. |
TryParse(ReadOnlySpan<Byte>, Int16) |
Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej ze znakiem. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int16) |
Konwertuje reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik liczby całkowitej ze znakiem 16-bitowym. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie. |
TryParse(String, NumberStyles, IFormatProvider, Int16) |
Konwertuje reprezentację ciągu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik liczby całkowitej ze znakiem 16-bitowym. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Próbuje przeanalizować zakres znaków UTF-8 w wartość.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres znaków UTF-8 do przeanalizowania.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące utf8Text
elementu .
- result
- Int16
Po powrocie zawiera wynik pomyślnego analizowania utf8Text
lub niezdefiniowanej wartości po awarii.
Zwraca
true
jeśli utf8Text
został pomyślnie przeanalizowany; w przeciwnym razie false
.
Dotyczy
TryParse(ReadOnlySpan<Char>, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Konwertuje reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik liczby całkowitej ze znakiem 16-bitowym. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający znaki reprezentujące liczbę do przekonwertowania.
- result
- Int16
Gdy ta metoda zostanie zwrócona, zawiera 16-bitową wartość całkowitą z podpisem 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ż Int16.MinValue lub większą niż Int16.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
.
Dotyczy
TryParse(String, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Konwertuje reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej ze znakiem. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.
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
Parametry
- s
- String
Ciąg zawierający liczbę, która ma zostać przekształcona.
- result
- Int16
Gdy ta metoda zostanie zwrócona, zawiera 16-bitową wartość całkowitą z podpisem 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 ma poprawnego formatu lub reprezentuje liczbę mniejszą niż Int16.MinValue lub większą niż Int16.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
.
Przykłady
Poniższy przykład wywołuje metodę Int16.TryParse(String, Int16) z wieloma różnymi wartościami ciągów.
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.
Niektóre ciągi, których TryParse(String, Int16) metoda nie może przekonwertować w tym przykładzie, to:
"9432.0". Konwersja kończy się niepowodzeniem, ponieważ ciąg nie może zawierać separatora dziesiętnego; musi zawierać tylko cyfry całkowite.
"16,667". Konwersja kończy się niepowodzeniem, ponieważ ciąg nie może zawierać separatorów grup; musi zawierać tylko cyfry całkowite.
"(100)". Konwersja kończy się niepowodzeniem, ponieważ ciąg nie może zawierać znaku ujemnego innego niż ten zdefiniowany przez właściwości i NumberFormatInfo.NumberNegativePattern kultury NumberFormatInfo.NegativeSign bieżącej.
"01FA". Konwersja kończy się niepowodzeniem, ponieważ ciąg nie może zawierać cyfr szesnastkowych; musi zawierać tylko cyfry dziesiętne.
Uwagi
Metoda Int16.TryParse(String, Int16) różni się od Int16.Parse(String) metody, zwracając wartość logiczną, która wskazuje, czy operacja analizy zakończyła się pomyślnie, zamiast zwracać wartość przeanalizowaną Int16 . Eliminuje to konieczność użycia obsługi wyjątków do testowania dla FormatException zdarzenia, które s
jest nieprawidłowe i nie można go pomyślnie przeanalizować.
Parametr s
powinien być reprezentacją ciągu liczby w formularzu:
[odstęp][znak]cyfry[odstęp]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W tabeli poniżej opisano każdy element.
Element | Opis |
---|---|
Ws | Opcjonalny odstęp. |
sign | Opcjonalny znak. |
Cyfr | Sekwencja cyfr od 0 do 9. |
Parametr s
jest interpretowany przy użyciu NumberStyles.Integer stylu. Oprócz cyfr dziesiętnych dozwolone są tylko spacje wiodące i końcowe wraz z znakiem wiodącym. Aby jawnie zdefiniować elementy stylu wraz z informacjami formatowania specyficznymi dla kultury, które mogą być obecne w s
programie , użyj Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) metody .
Parametr s
jest analizowany przy użyciu informacji o formatowaniu w obiekcie zainicjowanym NumberFormatInfo dla bieżącej kultury systemu. Aby uzyskać więcej informacji, zobacz CurrentInfo.
To przeciążenie TryParse metody interpretuje wszystkie cyfry w parametrze s
jako cyfry dziesiętne. Aby przeanalizować reprezentację ciągu szesnastkowej liczby, wywołaj Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) przeciążenie.
Zobacz też
- Parse(String)
- ToString()
- Analizowanie ciągów liczbowych na platformie .NET
- Przykład: .NET Core WinForms Formatting Utility (C#)
- Przykład: .NET Core WinForms Formatting Utility (Visual Basic)
Dotyczy
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Próbuje przeanalizować zakres znaków w wartości.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres znaków do przeanalizowania.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące s
elementu .
- result
- Int16
Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania s
wartości lub niezdefiniowanej wartości w przypadku niepowodzenia.
Zwraca
true
jeśli s
został pomyślnie przeanalizowany; w przeciwnym razie false
.
Dotyczy
TryParse(String, IFormatProvider, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Próbuje przeanalizować ciąg w wartość.
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
Parametry
- s
- String
Ciąg do analizy.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące s
elementu .
- result
- Int16
Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania s
lub niezdefiniowanej wartości po awarii.
Zwraca
true
jeśli s
został pomyślnie przeanalizowany; w przeciwnym razie false
.
Dotyczy
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Próbuje przeanalizować zakres znaków UTF-8 w wartość.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres znaków UTF-8 do przeanalizowania.
- style
- NumberStyles
Bitowa kombinacja stylów liczbowych, które mogą być obecne w obiekcie utf8Text
.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące utf8Text
elementu .
- result
- Int16
Po powrocie zawiera wynik pomyślnego analizowania utf8Text
lub niezdefiniowanej wartości po awarii.
Zwraca
true
jeśli utf8Text
został pomyślnie przeanalizowany; w przeciwnym razie false
.
Dotyczy
TryParse(ReadOnlySpan<Byte>, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej ze znakiem.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres zawierający znaki UTF-8 reprezentujące liczbę do przekonwertowania.
- result
- Int16
Gdy ta metoda zostanie zwrócona, zawiera 16-bitową wartość całkowitą z podpisem równoważną liczbie zawartej w utf8Text
przypadku pomyślnej konwersji lub zera, jeśli konwersja nie powiodła się. Ten parametr jest przekazywany jako niezainicjowany; każda wartość pierwotnie dostarczona w wyniku zostanie zastąpiona.
Zwraca
true
jeśli utf8Text
pomyślnie została przekonwertowana; w przeciwnym razie false
.
Dotyczy
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Konwertuje reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik liczby całkowitej ze znakiem 16-bitowym. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający znaki reprezentujące liczbę do przekonwertowania. Zakres jest interpretowany przy użyciu stylu określonego przez style
.
- style
- NumberStyles
Bitowa kombinacja wartości wyliczenia, która wskazuje elementy stylu, które mogą być obecne w obiekcie s
. Typową wartością do określenia jest Integer.
- provider
- IFormatProvider
Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s
- result
- Int16
Gdy ta metoda zostanie zwrócona, zawiera 16-bitową wartość całkowitą z podpisem 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ż Int16.MinValue lub większą niż Int16.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
.
Dotyczy
TryParse(String, NumberStyles, IFormatProvider, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Konwertuje reprezentację ciągu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik liczby całkowitej ze znakiem 16-bitowym. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.
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
Parametry
- s
- String
Ciąg zawierający liczbę, która ma zostać przekształcona. Ciąg jest interpretowany przy użyciu stylu określonego przez style
.
- style
- NumberStyles
Bitowa kombinacja wartości wyliczenia, która wskazuje elementy stylu, które mogą być obecne w obiekcie s
. Typową wartością do określenia jest Integer.
- provider
- IFormatProvider
Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s
- result
- Int16
Gdy ta metoda zostanie zwrócona, zawiera 16-bitową wartość całkowitą z podpisem 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ż Int16.MinValue lub większą niż Int16.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
.
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ę Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) z wieloma różnymi wartościami ciągów.
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.
Uwagi
Metoda Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) różni się od Int16.Parse(String, NumberStyles, IFormatProvider) metody, zwracając wartość logiczną, która wskazuje, czy operacja analizy zakończyła się pomyślnie, zamiast zwracać wartość przeanalizowaną Int16 . Eliminuje to konieczność użycia obsługi wyjątków do testowania dla FormatException zdarzenia, które s
jest nieprawidłowe 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 s
, aby operacja analizy zakończyła się powodzeniem. Musi być kombinacją flag bitowych z wyliczenia NumberStyles . W zależności od wartości stylu s
parametr może zawierać następujące elementy:
[odstęp][$][znak][cyfry,]cyfry[.cyfry_ułamkowe][e[znak]cyfry][odstęp]
Lub, jeśli style
parametr zawiera NumberStyles.AllowHexSpecifier:
[odstęp]cyfry_szesnastkowe[odstęp]
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 s , jeśli style zawiera flagę NumberStyles.AllowLeadingWhite lub na końcu s , 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ę, s jeśli style zawiera flagę NumberStyles.AllowCurrencySymbol . |
sign | Opcjonalny znak. |
Cyfr | Sekwencja cyfr od 0 do 9. |
, | Separator tysięcy specyficzny dla kultury. Separator tysięcy kultury określonej przez provider może pojawić się, s 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ę, s 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 s , gdy style zawiera flagę NumberStyles.AllowDecimalPoint . |
E | Znak „e” lub „E”, który wskazuje, że wartość jest reprezentowana w zapisie wykładniczym. Parametr s 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 kontroluje elementy, które mogą być, ale nie muszą być obecne 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 s
.
Niezłożone wartości wyliczenia NumberStyles | Dodatkowe (poza cyframi) elementy dozwolone w parametrze s |
---|---|
NumberStyles.None | Tylko cyfry dziesiętne. |
NumberStyles.AllowDecimalPoint | Elementy . i fractional_digits . Jednak fractional_digits musi składać się tylko z co najmniej jednej cyfry lub metody zwraca wartość false . |
NumberStyles.AllowExponent | Parametr s może również używać notacji wykładniczej. Jeśli s reprezentuje liczbę w notacji wykładniczej, musi reprezentować liczbę całkowitą w zakresie Int16 typu danych bez składnika ułamkowego niezerowego. |
NumberStyles.AllowLeadingWhite | Element ws na początku s. |
NumberStyles.AllowTrailingWhite | Element ws na końcu s. |
NumberStyles.AllowLeadingSign | Znak może pojawić się przed cyframi. |
NumberStyles.AllowTrailingSign | Znak może pojawić się po cyfrach. |
NumberStyles.AllowParentheses | Element znaku w postaci nawiasów otaczających wartość liczbową. |
NumberStyles.AllowThousands | Element , . |
NumberStyles.AllowCurrencySymbol | Element $ . |
NumberStyles.Currency | Wszystkie elementy. Parametr s nie może reprezentować liczby szesnastkowej ani liczby w notacji wykładniczej. |
NumberStyles.Float | Element ws na początku lub na końcu s znaku na początku s i symbolu . Parametr s może również używać notacji wykładniczej. |
NumberStyles.Number | Elementy ws, sign, thousands separator (,) i dziesiętne (.). |
NumberStyles.Any | Wszystkie style, z wyjątkiem s nie mogą reprezentować liczby szesnastkowej. |
Jeśli flaga NumberStyles.AllowHexSpecifier jest używana, s
musi być wartością szesnastkową bez prefiksu. Na przykład "9AF3" analizuje się pomyślnie, ale "0x9AF3" nie. Jedynymi innymi flagami, które mogą być obecne, style
są NumberStyles.AllowLeadingWhite i NumberStyles.AllowTrailingWhite. (Wyliczenie NumberStyles ma styl złożony, NumberStyles.HexNumber, który zawiera obie flagi odstępu).
Parametr provider
jest implementacją IFormatProvider , taką jak CultureInfo obiekt lub NumberFormatInfo obiekt, którego GetFormat metoda zwraca NumberFormatInfo obiekt. Obiekt NumberFormatInfo udostępnia informacje specyficzne dla kultury dotyczące formatu .s
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