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 16-bitową liczbę całkowitą 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ści. |
TryParse(ReadOnlySpan<Char>, Int16) |
Konwertuje reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na 16-bitową liczbę całkowitą ze znakiem. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie. |
TryParse(String, Int16) |
Konwertuje reprezentację ciągu liczby na 16-bitową liczbę całkowitą 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ści. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int16) |
Próbuje przeanalizować zakres znaków UTF-8 w wartości. |
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 16-bitową liczbę całkowitą ze znakiem. 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 16-bitową liczbę całkowitą ze znakiem. 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ści.
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 analizy.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.utf8Text
- result
- Int16
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>, 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 16-bitową liczbę całkowitą ze znakiem. 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 konwersji.
- result
- Int16
Gdy ta metoda zwraca wartość całkowitą ze znakiem 16-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 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 niezainicjowany; każda wartość pierwotnie podana w result
zostanie zastąpiona.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; 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 16-bitową liczbę całkowitą 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 zwraca wartość całkowitą ze znakiem 16-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 kończy się niepowodzeniem, s
jeśli 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 niezainicjowany; każda wartość pierwotnie podana w result
zostanie zastąpiona.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; w przeciwnym razie . false
Przykłady
Poniższy przykład wywołuje metodę Int16.TryParse(String, Int16) z kilkoma 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 szesnastkowe; 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 powiodła się zamiast zwracać przeanalizowaną Int16 wartość. Eliminuje konieczność użycia obsługi wyjątków w celu przetestowania elementu FormatException w przypadku nieprawidłowego s
i nie można go pomyślnie przeanalizować.
Parametr s
powinien być reprezentacją ciągu liczby w postaci:
[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 o formatowaniu 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ć ciąg reprezentujący liczbę szesnastkową, 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.s
- result
- Int16
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, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
- Źródło:
- Int16.cs
Próbuje przeanalizować ciąg w wartości.
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.s
- result
- Int16
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, Int16)
- Źródło:
- Int16.cs
- Źródło:
- Int16.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] 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 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
- Int16
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>, 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 konwersji.
- result
- Int16
Gdy ta metoda zwraca wartość całkowitą ze znakiem 16-bitowym, odpowiadającą liczbie zawartej w utf8Text
konwersji powiodło 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, 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 16-bitową liczbę całkowitą ze znakiem. 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 konwersji. Zakres jest interpretowany przy użyciu stylu określonego przez style
.
- style
- NumberStyles
Bitowa kombinacja wartości wyliczenia wskazująca 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 zwraca wartość całkowitą ze znakiem 16-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 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 niezainicjowany; każda wartość pierwotnie podana w result
zostanie zastąpiona.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; 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 16-bitową liczbę całkowitą ze znakiem. 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 wskazująca 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 zwraca wartość całkowitą ze znakiem 16-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 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 niezainicjowany; każda wartość pierwotnie podana w result
zostanie zastąpiona.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; 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 kilkoma 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 powiodła się zamiast zwracać przeanalizowaną Int16 wartość. Eliminuje konieczność użycia obsługi wyjątków w celu przetestowania elementu FormatException w przypadku nieprawidłowego s
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ę pomyślnie. Musi to być kombinacja flag bitowych z NumberStyles wyliczenia. 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ę w s pliku , jeśli style zawiera flagę NumberStyles.AllowThousands . |
. | Symbol dziesiętny specyficzny dla kultury. Symbol punktu dziesiętnego kultury określonej przez provider program może pojawić się w s pliku , 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
Wszystkie znaki NUL zakończenia (U+0000) w s
obiekcie są ignorowane przez operację analizowania, niezależnie od wartości argumentu style
.
Ciąg z cyframi dziesiętnymi (który odpowiada flagi NumberStyles.None ) 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. W poniższej tabeli przedstawiono, jak poszczególne NumberStyles elementy członkowskie wpływają na elementy, które mogą być obecne w programie 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 metoda 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 innego niż zero. |
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 elementu s i symbolu . Parametr s może również używać notacji wykładniczej. |
NumberStyles.Number | Elementy ws, znak, separator tysięcy (,) i separator dziesiętny (.). |
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 w systemie style
, są i NumberStyles.AllowLeadingWhiteNumberStyles.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 zawiera informacje specyficzne dla kultury dotyczące formatu s
. Jeśli provider
parametr ma null
wartość , 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