UInt32.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í.
Pokusí se převést řetězcové vyjádření čísla na jeho 32bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
Přetížení
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32) |
Pokusí se parsovat rozsah znaků UTF-8 na hodnotu. |
TryParse(ReadOnlySpan<Char>, UInt32) |
Pokusí se převést span reprezentace čísla na jeho 32bitové celočíselné ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli. |
TryParse(String, UInt32) |
Pokusí se převést řetězcové vyjádření čísla na jeho 32bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32) |
Pokusí se parsovat rozsah znaků na hodnotu. |
TryParse(String, IFormatProvider, UInt32) |
Pokusí se parsovat řetězec na hodnotu. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt32) |
Pokusí se parsovat rozsah znaků UTF-8 na hodnotu. |
TryParse(ReadOnlySpan<Byte>, UInt32) |
Pokusí se převést znakový rozsah UTF-8 obsahující řetězcové vyjádření čísla na jeho 32bitový celočíselný ekvivalent bez znaménka. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt32) |
Pokusí se převést span reprezentace čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 32bitové celočíselné ekvivalenty bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli. |
TryParse(String, NumberStyles, IFormatProvider, UInt32) |
Pokusí se převést řetězcové vyjádření čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 32bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = IUtf8SpanParsable<System::UInt32>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out uint result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As UInteger) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah znaků UTF-8, které se mají analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro utf8Text
jazykovou verzi.
- result
- UInt32
Při vrácení obsahuje výsledek úspěšné analýzy utf8Text
nebo nedefinovanou hodnotu při selhání.
Návraty
true
pokud utf8Text
byl úspěšně parsován, jinak hodnota false
.
Platí pro
TryParse(ReadOnlySpan<Char>, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
Pokusí se převést span reprezentace čísla na jeho 32bitové celočíselné ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::UInt32 % result);
public static bool TryParse (ReadOnlySpan<char> s, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, out uint result);
static member TryParse : ReadOnlySpan<char> * uint32 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * uint32 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As UInteger) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah obsahující znaky, které představují číslo, které se má převést.
- result
- UInt32
Když tato metoda vrátí, obsahuje 32bitové celé číslo bez znaménka, která je ekvivalentní číslu obsaženému v s
, pokud převod byl úspěšný, nebo nula, pokud převod selhal. Převod selže, pokud s
parametr je null
nebo Empty, nemá správný formát nebo představuje číslo, které je menší než UInt32.MinValue nebo větší než UInt32.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result
bude přepsána.
Návraty
true
pokud s
byl úspěšně převeden, jinak hodnota false
.
- Atributy
Platí pro
TryParse(String, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
- Alternativa odpovídající specifikaci CLS
- System.Int64.TryParse(String, Int64)
Pokusí se převést řetězcové vyjádření čísla na jeho 32bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::UInt32 % result);
[System.CLSCompliant(false)]
public static bool TryParse (string s, out uint result);
public static bool TryParse (string? s, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, out uint result);
[<System.CLSCompliant(false)>]
static member TryParse : string * uint32 -> bool
static member TryParse : string * uint32 -> bool
Public Shared Function TryParse (s As String, ByRef result As UInteger) As Boolean
Parametry
- s
- String
Řetězec, který představuje číslo k převedení.
- result
- UInt32
Když tato metoda vrátí, obsahuje 32bitové celé číslo bez znaménka, která je ekvivalentní číslu obsaženému v s
, pokud převod byl úspěšný, nebo nula, pokud převod selhal. Převod selže, pokud s
parametr je null
nebo Empty, nemá správný formát nebo představuje číslo, které je menší než UInt32.MinValue nebo větší než UInt32.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result
bude přepsána.
Návraty
true
pokud s
byl úspěšně převeden, jinak hodnota false
.
- Atributy
Příklady
Následující příklad volá metodu TryParse(String, UInt32) 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 se podobá metodě s tím rozdílem Parse , že pokud se převod nezdaří, nevyvolá výjimku. Tato metoda eliminuje potřebu použití zpracování výjimek k testování FormatException , zda s
je neplatné a nelze ji úspěšně analyzovat.
Parametr s
by měl být řetězcovým vyjádřením desetinného čísla v následujícím tvaru:
[ws] [sign] 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é místo. |
sign | Nepovinný znak. Platné znaky znaménka jsou určeny vlastnostmi NumberFormatInfo.NegativeSign a NumberFormatInfo.PositiveSign aktuální jazykové verze. |
Číslic | Posloupnost čísel v desítkové soustavě v rozsahu od 0 do 9. |
Parametr se s
interpretuje pomocí NumberStyles.Integer stylu . Kromě desítkových číslic jsou povoleny pouze úvodní a koncové mezery s počátečním znaménkem. 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, UInt32) .
Poznámka
Řetězec určený parametrem s
nemůže obsahovat žádné oddělovače skupin ani oddělovač desetinných míst a nemůže mít desetinnou část.
Parametr s
je parsován pomocí informací o formátování v objektu NumberFormatInfo pro aktuální jazykovou verzi systému. Další informace naleznete v tématu NumberFormatInfo.CurrentInfo.
Toto přetížení interpretuje všechny číslice v parametru s
jako desetinné číslice. Chcete-li parsovat řetězcovou reprezentaci šestnáctkového čísla, zavolejte TryParse(String, NumberStyles, IFormatProvider, UInt32) místo toho přetížení.
Viz také
- Parse(String)
- ToString()
- Analýza číselných řetězců v .NET
- Ukázka: .NET Core – nástroj pro formátování WinForms (C#)
- Ukázka: .NET Core WinForms Formatting Utility (Visual Basic)
Platí pro
TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Pokusí se parsovat rozsah znaků na hodnotu.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = ISpanParsable<System::UInt32>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out uint result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As UInteger) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah znaků, které se mají analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro s
jazykovou verzi.
- result
- UInt32
Když 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ě parsován, jinak hodnota false
.
Platí pro
TryParse(String, IFormatProvider, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Pokusí se parsovat řetězec na hodnotu.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = IParsable<System::UInt32>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out uint result);
static member TryParse : string * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As UInteger) As Boolean
Parametry
- s
- String
Řetězec, který se má analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro s
jazykovou verzi.
- result
- UInt32
Když 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ě parsován, jinak hodnota false
.
Platí pro
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = System::Numerics::INumberBase<System::UInt32>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As UInteger) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah znaků UTF-8, které se mají analyzovat.
- style
- NumberStyles
Bitové kombinace stylů čísel, které se můžou vyskytovat v nástroji utf8Text
.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro utf8Text
jazykovou verzi.
- result
- UInt32
Při vrácení obsahuje výsledek úspěšné analýzy utf8Text
nebo nedefinovanou hodnotu při selhání.
Návraty
true
pokud utf8Text
byl úspěšně parsován, jinak hodnota false
.
Platí pro
TryParse(ReadOnlySpan<Byte>, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Pokusí se převést znakový rozsah UTF-8 obsahující řetězcové vyjádření čísla na jeho 32bitový celočíselný ekvivalent bez znaménka.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::UInt32 % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out uint result);
static member TryParse : ReadOnlySpan<byte> * uint32 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As UInteger) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah obsahující znaky UTF-8 představující číslo, které chcete převést.
- result
- UInt32
Když tato metoda vrátí, obsahuje 32bitovou celočíselnou hodnotu bez znaménka, která odpovídá číslu obsaženému v případě úspěšného převodu, nebo nula, utf8Text
pokud se převod nezdařil. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná ve výsledku bude přepsána.
Návraty
true
pokud utf8Text
byl úspěšně převeden, jinak hodnota false
.
Platí pro
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
Pokusí se převést span reprezentace čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 32bitové celočíselné ekvivalenty bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = System::Numerics::INumberBase<System::UInt32>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As UInteger) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah obsahující znaky, které představují číslo, které se má převést. 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, která se má zadat, je Integer.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro s
jazykovou verzi.
- result
- UInt32
Když tato metoda vrátí, obsahuje 32bitovou celočíselnou hodnotu bez znaménka, která odpovídá číslu obsaženému v s
, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil. Převod selže, pokud s
parametr je null
nebo Empty, není ve formátu kompatibilním s parametrem style
nebo představuje číslo, které je menší než UInt32.MinValue nebo větší než UInt32.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result
bude přepsána.
Návraty
true
pokud s
byl úspěšně převeden, jinak hodnota false
.
- Atributy
Platí pro
TryParse(String, NumberStyles, IFormatProvider, UInt32)
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
- Zdroj:
- UInt32.cs
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
- Alternativa odpovídající specifikaci CLS
- System.Int64.TryParse(String, Int64)
Pokusí se převést řetězcové vyjádření čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 32bitový celočíselný ekvivalent bez znaménka. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt32 % result) = System::Numerics::INumberBase<System::UInt32>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out uint result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out uint result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint32 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As UInteger) As Boolean
Parametry
- s
- String
Řetězec, který představuje číslo k převedení. Řetězec je interpretován pomocí stylu určeného parametrem style
.
- style
- NumberStyles
Bitová kombinace hodnot výčtu, která označuje povolený formát .s
Typická hodnota, která se má zadat, je Integer.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro s
jazykovou verzi.
- result
- UInt32
Když tato metoda vrátí, obsahuje 32bitovou celočíselnou hodnotu bez znaménka, která odpovídá číslu obsaženému v s
, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil. Převod selže, pokud s
parametr je null
nebo Empty, není ve formátu kompatibilním s parametrem style
nebo představuje číslo, které je menší než UInt32.MinValue nebo větší než UInt32.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result
bude přepsána.
Návraty
true
pokud s
byl úspěšně převeden, jinak hodnota false
.
- Atributy
Výjimky
Příklady
Následující příklad volá metodu TryParse(String, NumberStyles, IFormatProvider, UInt32) 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 = "2106034";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-10603";
styles = NumberStyles.None;
CallTryParse(numericString, styles);
numericString = "29103674.00";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10345.72";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "41792210E-01";
styles = NumberStyles.Integer | NumberStyles.AllowExponent;
CallTryParse(numericString, styles);
numericString = "9112E-01";
CallTryParse(numericString, styles);
numericString = "312E01";
CallTryParse(numericString, styles);
numericString = "FFC86DA1";
CallTryParse(numericString, NumberStyles.HexNumber);
numericString = "0x8F8C";
CallTryParse(numericString, NumberStyles.HexNumber);
}
private static void CallTryParse(string stringToConvert, NumberStyles styles)
{
uint number;
bool result = UInt32.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 '2106034' to 2106034.
// Attempted conversion of '-10603' failed.
// Converted '29103674.00' to 29103674.
// Attempted conversion of '10345.72' failed.
// Converted '41792210E-01' to 4179221.
// Attempted conversion of '9112E-01' failed.
// Converted '312E01' to 3120.
// Converted 'FFC86DA1' to 4291325345.
// Attempted conversion of '0x8F8C' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) (styles: NumberStyles) =
match UInt32.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
printfn $"Attempted conversion of '{stringToConvert}' failed."
| _ -> ()
do
let numericString = "2106034"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-10603"
let styles = NumberStyles.None
callTryParse numericString styles
let numericString = "29103674.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 = "41792210E-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 = "FFC86DA1"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x8F8C"
callTryParse numericString NumberStyles.HexNumber
// The example displays the following output:
// Converted '2106034' to 2106034.
// Attempted conversion of '-10603' failed.
// Converted '29103674.00' to 29103674.
// Attempted conversion of '10345.72' failed.
// Converted '41792210E-01' to 4179221.
// Attempted conversion of '9112E-01' failed.
// Converted '312E01' to 3120.
// Converted 'FFC86DA1' to 4291325345.
// Attempted conversion of '0x8F8C' failed.
Imports System.Globalization
Module Example
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "2106034"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-10603"
styles = NumberStyles.None
CallTryParse(numericString, styles)
numericString = "29103674.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10345.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "41792210E-01"
styles = NumberStyles.Integer Or NumberStyles.AllowExponent
CallTryParse(numericString, styles)
numericString = "9112E-01"
CallTryParse(numericString, styles)
numericString = "312E01"
CallTryParse(numericString, styles)
numericString = "FFC86DA1"
CallTryParse(numericString, NumberStyles.HexNumber)
numericString = "0x8F8C"
CallTryParse(numericString, NumberStyles.HexNumber)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As UInteger
Dim result As Boolean = UInt32.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 '2106034' to 2106034.
' Attempted conversion of '-10603' failed.
' Converted '29103674.00' to 29103674.
' Attempted conversion of '10345.72' failed.
' Converted '41792210E-01' to 4179221.
' Attempted conversion of '9112E-01' failed.
' Converted '312E01' to 3120.
' Converted 'FFC86DA1' to 4291325345.
' Attempted conversion of '0x8F8C' failed.
Poznámky
Metoda TryParse(String, NumberStyles, IFormatProvider, UInt32) se podobá metodě s tím rozdílem Parse(String, NumberStyles, IFormatProvider) , že pokud se převod nezdaří, nevyvolá výjimku. Tato metoda eliminuje potřebu použití 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 povoleny v parametru s
pro úspěšnou operaci analýzy. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . V závislosti na hodnotě style
s
může parametr 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 zahrnuje NumberStyles.AllowHexSpecifier, s
může parametr obsahovat následující prvky:
[ws] hexdigits[ws]
Následující tabulka popisuje jednotlivé prvky.
Element | Popis |
---|---|
Ws | Volitelné prázdné místo. Prázdné znaky se mohou zobrazit na začátku, s pokud style obsahuje NumberStyles.AllowLeadingWhite příznak, nebo na konci s , pokud style obsahuje NumberStyles.AllowTrailingWhite příznak. |
$ | Symbol měny pro konkrétní jazykovou verzi. Jeho pozice v řetězci je definována CurrencyPositivePattern vlastností objektu NumberFormatInfo vrácenou GetFormat metodou parametru provider . Symbol měny se může zobrazit v s , pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak . |
sign | Nepovinný znak. Znaménko se může zobrazit na začátku, s pokud style obsahuje NumberStyles.AllowLeadingSign příznak, a může se zobrazit na konci, s pokud style obsahuje NumberStyles.AllowTrailingSign příznak. Závorky lze v s použít k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak. Pokud je však znaménko záporné, s může představovat pouze nulovou hodnotu pro úspěšnou operaci analýzy. |
Číslic | Řada číslic od 0 do 9. |
, | Oddělovač skupin specifický pro jazykovou verzi. Oddělovač skupin jazykové verze určené parametrem provider se může zobrazit v s , pokud style obsahuje NumberStyles.AllowThousands příznak . |
. | Symbol desetinné čárky specifický pro jazykovou verzi. Symbol desetinné čárky jazykové verze určené nástrojem provider se může zobrazit v s , pokud style obsahuje NumberStyles.AllowDecimalPoint příznak . |
Fractional_digits | Jeden nebo více výskytů číslice 0. Desetinné číslice se můžou zobrazit jen v s případě, že style NumberStyles.AllowDecimalPoint obsahuje příznak . |
E | Znak "e" nebo "E", který určuje, že hodnota je reprezentován v exponenciální (vědecké) notaci. Parametr s může představovat číslo v exponenciálním zápisuNumberStyles.AllowExponent, pokud style obsahuje příznak . |
exponential_digits | Řada číslic od 0 do 9. Parametr s může představovat číslo v exponenciálním zápisuNumberStyles.AllowExponent, pokud style obsahuje příznak . |
hexdigits | Posloupnost šestnáctkových číslic od 0 do f nebo id 0 do F. |
Poznámka
Operace analýzy ignoruje všechny ukončující znaky s
NUL (U+0000) bez ohledu na hodnotu argumentu style
.
Řetězec pouze s desítkovými číslicemi (který odpovídá příznaku NumberStyles.None ) se vždy úspěšně parsuje. Většina zbývajících NumberStyles členů řídí prvky, 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
nástroji .
Neseseparované NumberStyles hodnoty |
Prvky, které jsou povoleny v hodnotě kromě číslic |
---|---|
None | Pouze desítkové číslice. |
AllowDecimalPoint | Desetinná čárka (.) a fractional_digits prvky. Fractional_digits však musí obsahovat pouze jednu nebo více číslic, nebo metoda vrátí false hodnotu . |
AllowExponent | Znak "e" nebo "E", který označuje exponenciální zápis spolu s exponential_digits. Pokud s představuje číslo v exponenciálním zápisu, nemůže mít nenulovou desetinnou komponentu. |
AllowLeadingWhite | Element ws na začátku .s |
AllowTrailingWhite | Element ws na konci .s |
AllowLeadingSign | Prvek znaménka před číslicemi. |
AllowTrailingSign | Prvek znaménka za číslicemi. |
AllowParentheses | Element sign ve formě závorek ohraničující nulovou číselnou hodnotu. |
AllowThousands | Element oddělovač skupin (,). |
AllowCurrencySymbol | Element currency ($). |
Currency | Všechny prvky. Nemůže však s představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu. |
Float | Element ws na začátku nebo na konci s , znaménko na začátku s a symbol desetinné čárky (.) Parametr s může také používat exponenciální zápis. |
Number | Elementy ws, znaménko, oddělovač skupin (,) a desetinná čárka (.) |
Any | Všechny prvky. Nemůže však s představovat šestnáctkové číslo. |
Pokud se NumberStyles.AllowHexSpecifier použije příznak, s
musí to být šestnáctková hodnota. Jedinými dalšími příznaky, které se můžou v style
nástroji vyskytovat, jsou NumberStyles.AllowLeadingWhite a NumberStyles.AllowTrailingWhite. (Výčet NumberStyles má složený styl , HexNumberkterý zahrnuje oba příznaky prázdných znaků.)
Poznámka
Pokud s
je řetězcové vyjádření šestnáctkového čísla, nemůže mu předcházet žádné dekorace (například 0x
nebo &h
), které ho odlišují 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 formátu .s
Parametr provider
může být některý z následujících parametrů:
Objekt CultureInfo , který představuje jazykovou verzi, která poskytuje informace o formátování. Jeho GetFormat metoda vrátí NumberFormatInfo objekt, který poskytuje informace o číselném formátování pro danou jazykovou verzi.
Objekt NumberFormatInfo , který poskytuje informace o číselném formátování. (Jeho implementace pouze GetFormat vrací 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
je null
, použije se NumberFormatInfo objekt pro aktuální jazykovou verzi.
Viz také
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro