UInt16.TryParse Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Převede řetězcové vyjádření čísla na 16bitové celé číslo bez znaménka. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
Přetížení
| Name | Description |
|---|---|
| TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt16) |
Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty. |
| TryParse(ReadOnlySpan<Char>, UInt16) |
Pokusí se převést reprezentaci rozsahu čísla na 16bitové celočíselné ekvivalenty bez znaménka. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný. |
| TryParse(String, UInt16) |
Pokusí se převést řetězcovou reprezentaci čísla na 16bitové celé číslo bez znaménka. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný. |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt16) |
Pokusí se analyzovat rozsah znaků do hodnoty. |
| TryParse(String, IFormatProvider, UInt16) |
Pokusí se analyzovat řetězec do hodnoty. |
| TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt16) |
Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty. |
| TryParse(ReadOnlySpan<Byte>, UInt16) |
Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho 16bitový celočíselnou ekvivalent. |
| TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt16) |
Pokusí se převést reprezentaci rozsahu čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 16bitový celočíselnou ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný. |
| TryParse(String, NumberStyles, IFormatProvider, UInt16) |
Pokusí se převést řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 16bitový celočíselnou ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = IUtf8SpanParsable<System::UInt16>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As UShort) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah znaků UTF-8 pro analýzu.
- provider
- IFormatProvider
Objekt, který poskytuje informace o utf8Textformátování specifické pro jazykovou verzi .
- result
- UInt16
Při vrácení obsahuje výsledek úspěšné utf8Text analýzy nebo nedefinovanou hodnotu selhání.
Návraty
true pokud utf8Text byl úspěšně analyzován; jinak , false.
Platí pro
TryParse(ReadOnlySpan<Char>, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
Pokusí se převést reprezentaci rozsahu čísla na 16bitové celočíselné ekvivalenty bez znaménka. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse(ReadOnlySpan<char> s, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, out ushort result);
static member TryParse : ReadOnlySpan<char> * uint16 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As UShort) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah obsahující znaky představující číslo, které se má převést.
- result
- UInt16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu bez znaménka, která je ekvivalentní číslu obsaženému v s, pokud převod byl úspěšný, nebo nula v případě selhání převodu. Převod selže, pokud s je null parametr nebo Empty, není ve správném formátu. nebo představuje číslo menší než UInt16.MinValue nebo větší než UInt16.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.
Návraty
true pokud s byl úspěšně převeden; jinak , false.
- Atributy
Platí pro
TryParse(String, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
- Alternativa odpovídající specifikaci CLS
- System.Int32.TryParse(String, Int32)
Pokusí se převést řetězcovou reprezentaci čísla na 16bitové celé číslo bez znaménka. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::UInt16 % result);
[System.CLSCompliant(false)]
public static bool TryParse(string s, out ushort result);
public static bool TryParse(string? s, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse(string? s, out ushort result);
[<System.CLSCompliant(false)>]
static member TryParse : string * uint16 -> bool
static member TryParse : string * uint16 -> bool
Public Shared Function TryParse (s As String, ByRef result As UShort) As Boolean
Parametry
- s
- String
Řetězec, který představuje číslo, které se má převést.
- result
- UInt16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu bez znaménka, která je ekvivalentní číslu obsaženému v s, pokud převod byl úspěšný, nebo nula v případě selhání převodu. Převod selže, pokud s je null parametr nebo Empty, není ve správném formátu nebo představuje číslo menší než UInt16.MinValue nebo větší než UInt16.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.
Návraty
true pokud s byl úspěšně převeden; jinak , false.
- Atributy
Příklady
Následující příklad volá metodu TryParse(String, UInt16) jednou pro každý prvek v řetězcovém poli.
string[] numericStrings = { "1293.8", "+1671.7", "28347.",
" 33113684 ", "(0)", "-0", "-1",
"+1293617", "18-", "119870", "31,024",
" 3127094 ", "00700000" };
uint number;
foreach (string numericString in numericStrings)
{
if (UInt32.TryParse(numericString, out number))
Console.WriteLine("Converted '{0}' to {1}.", numericString, number);
else
Console.WriteLine("Cannot convert '{0}' to a UInt32.", numericString);
}
// The example displays the following output:
// Cannot convert '1293.8' to a UInt32.
// Cannot convert '+1671.7' to a UInt32.
// Cannot convert '28347.' to a UInt32.
// Converted ' 33113684 ' to 33113684.
// Cannot convert '(0)' to a UInt32.
// Converted '-0' to 0.
// Cannot convert '-1' to a UInt32.
// Converted '+1293617' to 1293617.
// Cannot convert '18-' to a UInt32.
// Converted '119870' to 119870.
// Cannot convert '31,024' to a UInt32.
// Converted ' 3127094 ' to 3127094.
// Converted '0070000' to 70000.
let numericStrings =
[| "1293.8"; "+1671.7"; "28347."
" 33113684 "; "(0)"; "-0"; "-1"
"+1293617"; "18-"; "119870"; "31,024"
" 3127094 "; "00700000" |]
for numericString in numericStrings do
match UInt32.TryParse numericString with
| true, number ->
printfn $"Converted '{numericString}' to {number}."
| _ ->
printfn $"Cannot convert '{numericString}' to a UInt32."
// The example displays the following output:
// Cannot convert '1293.8' to a UInt32.
// Cannot convert '+1671.7' to a UInt32.
// Cannot convert '28347.' to a UInt32.
// Converted ' 33113684 ' to 33113684.
// Cannot convert '(0)' to a UInt32.
// Converted '-0' to 0.
// Cannot convert '-1' to a UInt32.
// Converted '+1293617' to 1293617.
// Cannot convert '18-' to a UInt32.
// Converted '119870' to 119870.
// Cannot convert '31,024' to a UInt32.
// Converted ' 3127094 ' to 3127094.
// Converted '0070000' to 70000.
Dim numericStrings() As String = {"1293.8", "+1671.7", "28347.",
" 33113684 ", "(0)", "-0", "-1",
"+1293617", "18-", "119870",
"31,024", " 3127094 ", "0070000" }
Dim number As UInteger
For Each numericString As String In numericStrings
If UInt32.TryParse(numericString, number) Then
Console.WriteLine("Converted '{0}' to {1}.", numericString, number)
Else
Console.WriteLine("Cannot convert '{0}' to a UInt32.", numericString)
End If
Next
' The example displays the following output:
' Cannot convert '1293.8' to a UInt32.
' Cannot convert '+1671.7' to a UInt32.
' Cannot convert '28347.' to a UInt32.
' Converted ' 33113684 ' to 33113684.
' Cannot convert '(0)' to a UInt32.
' Converted '-0' to 0.
' Cannot convert '-1' to a UInt32.
' Converted '+1293617' to 1293617.
' Cannot convert '18-' to a UInt32.
' Converted '119870' to 119870.
' Cannot convert '31,024' to a UInt32.
' Converted ' 3127094 ' to 3127094.
' Converted '0070000' to 70000.
Poznámky
Metoda TryParse(String, UInt16) je podobná Parse(String) metodě, s tím rozdílem, že nevyvolá výjimku, pokud převod selže. Tato metoda eliminuje nutnost použít zpracování výjimek k otestování, FormatException pokud s je neplatné a nelze ji úspěšně analyzovat.
Parametr s by měl být řetězcovou reprezentací desetinného čísla v následující podobě:
[ws][znaménko]digits[ws]
Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.
| Element | Popis |
|---|---|
| Ws | Volitelné prázdné znaky. |
| znaménko | Volitelné znaménko. Platné znaky znaménka jsou určeny vlastnostmi NumberFormatInfo.NegativeSignNumberFormatInfo.PositiveSign aktuální jazykové verze. |
| Číslic | Posloupnost desetinných číslic v rozsahu od 0 do 9. |
Poznámka
Řetězec určený parametrem s nemůže obsahovat žádné oddělovače skupin ani oddělovač desetinných míst a nesmí obsahovat desetinnou část.
Tento s parametr se interpretuje pomocí NumberStyles.Integer stylu. Kromě desetinných číslic jsou povoleny pouze úvodní a koncové mezery s počátečním symbolem. Chcete-li explicitně definovat prvky stylu s informacemi o formátování specifické pro jazykovou verzi, které mohou být přítomny v s, zavolejte metodu TryParse(String, NumberStyles, IFormatProvider, UInt16) .
Parametr s je analyzován pomocí informací o formátování v objektu NumberFormatInfo pro aktuální systémovou jazykovou verzi. Další informace najdete na webu NumberFormatInfo.CurrentInfo.
Toto přetížení interpretuje všechny číslice v parametru s jako desítkové číslice. Chcete-li parsovat řetězcovou reprezentaci šestnáctkového čísla, zavolejte TryParse(String, NumberStyles, IFormatProvider, UInt16) místo toho přetížení.
Viz také
- Parse(String)
- ToString()
- Analýza číselných řetězců v .NET
- Ukázka: Nástroj pro formátování .NET Core WinForms (C#)
- Ukázka: .NET Core WinForms Formatting Utility (Visual Basic)
Platí pro
TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Pokusí se analyzovat rozsah znaků do hodnoty.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = ISpanParsable<System::UInt16>::TryParse;
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As UShort) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah znaků, které se mají analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .
- result
- UInt16
Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s, nebo nedefinovanou hodnotu při selhání.
Návraty
true pokud s byl úspěšně analyzován; jinak , false.
Platí pro
TryParse(String, IFormatProvider, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Pokusí se analyzovat řetězec do hodnoty.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = IParsable<System::UInt16>::TryParse;
public static bool TryParse(string? s, IFormatProvider? provider, out ushort result);
static member TryParse : string * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As UShort) As Boolean
Parametry
- s
- String
Řetězec, který se má analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .
- result
- UInt16
Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s nebo nedefinovanou hodnotu při selhání.
Návraty
true pokud s byl úspěšně analyzován; jinak , false.
Platí pro
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah znaků UTF-8 pro analýzu.
- style
- NumberStyles
Bitová kombinace stylů čísel, které mohou být přítomny v utf8Text.
- provider
- IFormatProvider
Objekt, který poskytuje informace o utf8Textformátování specifické pro jazykovou verzi .
- result
- UInt16
Při vrácení obsahuje výsledek úspěšné utf8Text analýzy nebo nedefinovanou hodnotu selhání.
Návraty
true pokud utf8Text byl úspěšně analyzován; jinak , false.
Platí pro
TryParse(ReadOnlySpan<Byte>, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho 16bitový celočíselnou ekvivalent.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse(ReadOnlySpan<byte> utf8Text, out ushort result);
static member TryParse : ReadOnlySpan<byte> * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As UShort) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah obsahující znaky UTF-8 představující číslo, které se má převést.
- result
- UInt16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu bez znaménka odpovídající číslu obsaženému v utf8Text případě úspěchu převodu nebo nula v případě selhání převodu. Tento parametr je předán neinicializovaný; jakákoli hodnota původně zadaná ve výsledku se přepíše.
Návraty
true pokud utf8Text byl úspěšně převeden; jinak , false.
Platí pro
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
Pokusí se převést reprezentaci rozsahu čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 16bitový celočíselnou ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah obsahující znaky, které představují číslo k převodu. Rozsah se interpretuje pomocí stylu určeného parametrem style .
- style
- NumberStyles
Bitová kombinace hodnot výčtu, která označuje povolený formát s. Typická hodnota, kterou je třeba zadat, je Integer.
- provider
- IFormatProvider
Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .
- result
- UInt16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu bez znaménka ekvivalentní číslu obsaženému v s, pokud převod byl úspěšný, nebo nula v případě selhání převodu. Převod selže, s pokud je null parametr nebo Empty, není ve formátu kompatibilním stylenebo představuje číslo menší než UInt16.MinValue nebo větší než UInt16.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.
Návraty
true pokud s byl úspěšně převeden; jinak , false.
- Atributy
Platí pro
TryParse(String, NumberStyles, IFormatProvider, UInt16)
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
- Zdroj:
- UInt16.cs
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
- Alternativa odpovídající specifikaci CLS
- System.Int32.TryParse(String, Int32)
Pokusí se převést řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 16bitový celočíselnou ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out ushort result);
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean
Parametry
- s
- String
Řetězec, který představuje číslo, které se má převést. Řetězec se interpretuje pomocí stylu určeného parametrem style .
- style
- NumberStyles
Bitová kombinace hodnot výčtu, která označuje povolený formát s. Typická hodnota, kterou je třeba zadat, je Integer.
- provider
- IFormatProvider
Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .
- result
- UInt16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu bez znaménka ekvivalentní číslu obsaženému v s, pokud převod byl úspěšný, nebo nula v případě selhání převodu. Převod selže, s pokud je null parametr nebo Empty, není ve formátu kompatibilním stylenebo představuje číslo menší než UInt16.MinValue nebo větší než UInt16.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.
Návraty
true pokud s byl úspěšně převeden; jinak , false.
- Atributy
Výjimky
Příklady
Následující příklad volá metodu TryParse(String, NumberStyles, IFormatProvider, UInt16) s několika různými řetězci a NumberStyles hodnotami.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string numericString;
NumberStyles styles;
numericString = "10603";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-10603";
styles = NumberStyles.None;
CallTryParse(numericString, styles);
numericString = "29103.00";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10345.72";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "2210E-01";
styles = NumberStyles.Integer | NumberStyles.AllowExponent;
CallTryParse(numericString, styles);
numericString = "9112E-01";
CallTryParse(numericString, styles);
numericString = "312E01";
CallTryParse(numericString, styles);
numericString = "FFC8";
CallTryParse(numericString, NumberStyles.HexNumber);
numericString = "0x8F8C";
CallTryParse(numericString, NumberStyles.HexNumber);
}
private static void CallTryParse(string stringToConvert, NumberStyles styles)
{
ushort number;
bool result = UInt16.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 '10603' to 10603.
// Attempted conversion of '-10603' failed.
// Converted '29103.00' to 29103.
// Attempted conversion of '10345.72' failed.
// Converted '2210E-01' to 221.
// Attempted conversion of '9112E-01' failed.
// Converted '312E01' to 3120.
// Converted 'FFC8' to 65480.
// Attempted conversion of '0x8F8C' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) (styles: NumberStyles) =
match UInt16.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
do
let numericString = "10603"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-10603"
let styles = NumberStyles.None
callTryParse numericString styles
let numericString = "29103.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 = "2210E-01"
let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
callTryParse numericString styles
let numericString = "9112E-01"
callTryParse numericString styles
let numericString = "312E01"
callTryParse numericString styles
let numericString = "FFC8"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x8F8C"
callTryParse numericString NumberStyles.HexNumber
// The example displays the following output:
// Converted '10603' to 10603.
// Attempted conversion of '-10603' failed.
// Converted '29103.00' to 29103.
// Attempted conversion of '10345.72' failed.
// Converted '2210E-01' to 221.
// Attempted conversion of '9112E-01' failed.
// Converted '312E01' to 3120.
// Converted 'FFC8' to 65480.
// Attempted conversion of '0x8F8C' failed.
Imports System.Globalization
Module Example
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "10603"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-10603"
styles = NumberStyles.None
CallTryParse(numericString, styles)
numericString = "29103.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10345.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "2210E-01"
styles = NumberStyles.Integer Or NumberStyles.AllowExponent
CallTryParse(numericString, styles)
numericString = "9112E-01"
CallTryParse(numericString, styles)
numericString = "312E01"
CallTryParse(numericString, styles)
numericString = "FFC8"
CallTryParse(numericString, NumberStyles.HexNumber)
numericString = "0x8F8C"
CallTryParse(numericString, NumberStyles.HexNumber)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As UShort
Dim result As Boolean = UInt16.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 '10603' to 10603.
' Attempted conversion of '-10603' failed.
' Converted '29103.00' to 29103.
' Attempted conversion of '10345.72' failed.
' Converted '2210E-01' to 221.
' Attempted conversion of '9112E-01' failed.
' Converted '312E01' to 3120.
' Converted 'FFC8' to 65480.
' Attempted conversion of '0x8F8C' failed.
Poznámky
Metoda TryParse(String, NumberStyles, IFormatProvider, UInt16) je podobná Parse(String, NumberStyles, IFormatProvider) metodě, s tím rozdílem, že nevyvolá výjimku, pokud převod selže. Tato metoda eliminuje nutnost použít zpracování výjimek k otestování, FormatException pokud s je neplatné a nelze ji úspěšně analyzovat.
Parametr style definuje prvky stylu (například prázdné znaky nebo kladné nebo záporné znaménko), které jsou v parametru s povolené, aby operace analýzy byla úspěšná. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . V závislosti na hodnotě styleparametru s může obsahovat následující prvky:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
Položky v hranatých závorkách ([ a ]) jsou volitelné. Nebo pokud style parametr obsahuje AllowHexSpecifier, s může parametr obsahovat následující prvky:
[ws]hexdigits[ws]
Následující tabulka popisuje jednotlivé prvky.
Ws Volitelné prázdné znaky. Prázdné znaky se můžou zobrazit na začátku s , pokud style příznak obsahuje NumberStyles.AllowLeadingWhite , nebo na konci s , pokud style příznak NumberStyles.AllowTrailingWhite obsahuje.
$ Symbol měny specifický pro jazykovou verzi. Jeho pozice v řetězci je definována CurrencyPositivePattern vlastností NumberFormatInfo objektu vráceného GetFormat metodou parametru provider . Symbol měny se může zobrazit, s pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak.
Znamení Volitelné znaménko. Znaménko se může zobrazit na začátku s , pokud style příznak obsahuje NumberStyles.AllowLeadingSign , a může se zobrazit na konci s , pokud style příznak NumberStyles.AllowTrailingSign obsahuje. Závorky lze použít s k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak. Pokud je však přítomno záporné znaménko, s může představovat pouze hodnotu nula pro operaci analýzy, aby byla úspěšná.
Číslic Posloupnost číslic od 0 do 9.
, Oddělovač skupin specifických pro jazykovou verzi. Oddělovač skupiny jazykové verze určené jazykovou provider verzí se může zobrazit v s případě, že style obsahuje NumberStyles.AllowThousands příznak.
.
Symbol desetinné čárky specifické pro jazykovou verzi. Symbol desetinné čárky zadané jazykovou provider verzí se může zobrazit v s případě, že style obsahuje NumberStyles.AllowDecimalPoint příznak.
Fractional_digits Jeden nebo více výskytů číslice 0. Desetinná číslice se můžou zobrazovat s jenom v případě, že style příznak obsahuje NumberStyles.AllowDecimalPoint .
E Znak "e" nebo "E", který označuje, že hodnota je reprezentována exponenciálním (vědeckým) zápisem. Parametr s může představovat číslo v exponenciálním zápisustyle, pokud NumberStyles.AllowExponent obsahuje příznak.
exponential_digits Posloupnost číslic od 0 do 9. Parametr s může představovat číslo v exponenciálním zápisustyle, pokud NumberStyles.AllowExponent obsahuje příznak.
hexdigits Posloupnost šestnáctkových číslic od 0 do f nebo 0 až F.
Poznámka
Všechny ukončující nulové znaky (U+0000) jsou s ignorovány operací analýzy bez ohledu na hodnotu argumentu style .
Řetězec s desetinnými číslicemi (který odpovídá příznaku NumberStyles.None ) se vždy úspěšně parsuje. Většina zbývajících NumberStyles členů ovládacích prvků, které mohou být přítomny, ale nemusí být přítomny v tomto vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles členy ovlivňují prvky, které mohou být přítomny v s.
Neseparované NumberStyles hodnoty |
Prvky povolené v hodnotě kromě číslic |
|---|---|
| None | Pouze desítkové číslice. |
| AllowDecimalPoint | Desetinná čárka (.) a fractional_digits elementy.
Nicméně, fractional_digits se musí skládat pouze z jedné nebo více 0 číslic, nebo metoda vrátí false. |
| AllowExponent | Znak "e" nebo "E", který označuje exponenciální notaci spolu s exponential_digits. Pokud s představuje číslo v exponenciálním zápisu, nemůže mít nenulovou desetinnou komponentu. |
| AllowLeadingWhite | Prvek ws na začátku .s |
| AllowTrailingWhite | Prvek ws na konci .s |
| AllowLeadingSign | Prvek znaménka před číslicemi. |
| AllowTrailingSign | Prvek znaménka za číslicemi. |
| AllowParentheses | Prvek znaménka ve formě závorek ohraničující nulovou číselnou hodnotu. |
| AllowThousands | Element oddělovače skupin (,). |
| AllowCurrencySymbol | Prvek měny ($) |
| Currency | Všechny prvky.
s Nelze však reprezentovat šestnáctkové číslo nebo číslo v exponenciálním zápisu. |
| Float | Prvek ws na začátku nebo s, na začátku sznaku a desetinné čárky (.) symbol. Parametr s může také použít exponenciální zápis. |
| Number | Prvky ws, znaménko, oddělovač skupin (,) a desetinná čárka (.). |
| Any | Všechny prvky.
s Nelze však reprezentovat šestnáctkové číslo. |
NumberStyles.AllowHexSpecifier Pokud se příznak použije, s musí být šestnáctková hodnota. Platné šestnáctkové číslice jsou 0 až 9, f a A až F. Předpona, například 0x, není podporována a způsobí selhání operace analýzy. Jediné ostatní příznaky, které mohou být přítomny jsou styleNumberStyles.AllowLeadingWhite a NumberStyles.AllowTrailingWhite. (Výčet NumberStyles má složený styl, HexNumberkterý obsahuje oba příznaky prázdných znaků.)
Poznámka
Pokud s je řetězcová reprezentace šestnáctkového čísla, nemůže jí předcházet žádná dekorace (například 0x nebo &h), která ji odlišuje jako šestnáctkové číslo. To způsobí selhání převodu.
Parametr provider je IFormatProvider implementace. Jeho GetFormat metoda vrátí NumberFormatInfo objekt, který poskytuje informace specifické pro jazykovou verzi o formátu s. Parametr provider může být libovolný z následujících:
Objekt CultureInfo , který představuje jazykovou verzi, která poskytuje informace o formátování. Jeho GetFormat metoda vrátí NumberFormatInfo objekt, který poskytuje číselné formátování informace pro danou jazykovou verzi.
Objekt NumberFormatInfo , který poskytuje informace o číselném formátování. (Její implementace GetFormat pouze vrátí sama sebe.)
Vlastní objekt, který implementuje IFormatProvider. Jeho GetFormat metoda vytvoří instanci a vrátí NumberFormatInfo objekt, který poskytuje informace o formátování.
Pokud provider ano null, NumberFormatInfo použije se objekt pro aktuální jazykovou verzi.