UInt32.TryParse Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Försöker konvertera strängrepresentationen av ett tal till dess 32-bitars osignerade heltalsmotsvarighet. Ett returvärde anger om konverteringen lyckades eller misslyckades.
Överlagringar
| Name | Description |
|---|---|
| TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32) |
Försöker parsa ett intervall med UTF-8 tecken till ett värde. |
| TryParse(ReadOnlySpan<Char>, UInt32) |
Försöker konvertera spanrepresentationen av ett tal till dess 32-bitars osignerade heltalsekvivalent. Ett returvärde anger om konverteringen lyckades eller misslyckades. |
| TryParse(String, UInt32) |
Försöker konvertera strängrepresentationen av ett tal till dess 32-bitars osignerade heltalsmotsvarighet. Ett returvärde anger om konverteringen lyckades eller misslyckades. |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32) |
Försöker parsa ett teckenintervall till ett värde. |
| TryParse(String, IFormatProvider, UInt32) |
Försöker parsa en sträng till ett värde. |
| TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt32) |
Försöker parsa ett intervall med UTF-8 tecken till ett värde. |
| TryParse(ReadOnlySpan<Byte>, UInt32) |
Försöker konvertera ett UTF-8-teckensintervall som innehåller strängrepresentationen av ett tal till dess 32-bitars osignerade heltalsmotsvarighet. |
| TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt32) |
Försöker konvertera spanrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess 32-bitars osignerade heltalsekvivalent. Ett returvärde anger om konverteringen lyckades eller misslyckades. |
| TryParse(String, NumberStyles, IFormatProvider, UInt32) |
Försöker konvertera strängrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess 32-bitars osignerade heltalsekvivalent. Ett returvärde anger om konverteringen lyckades eller misslyckades. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Försöker parsa ett intervall med UTF-8 tecken till ett värde.
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
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Intervallet för UTF-8 tecken att parsa.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.
- result
- UInt32
Vid retur innehåller resultatet av parsning utf8Text eller ett odefinierat värde vid fel.
Returer
trueom utf8Text har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Char>, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Viktigt!
Detta API uppfyller inte CLS.
Försöker konvertera spanrepresentationen av ett tal till dess 32-bitars osignerade heltalsekvivalent. Ett returvärde anger om konverteringen lyckades eller misslyckades.
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
Parametrar
- s
- ReadOnlySpan<Char>
Ett intervall som innehåller de tecken som representerar talet som ska konverteras.
- result
- UInt32
När den här metoden returneras innehåller det 32-bitars osignerade heltalsvärdet som motsvarar talet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte har rätt format eller representerar ett tal som är mindre än UInt32.MinValue eller större än UInt32.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
- Attribut
Gäller för
TryParse(String, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Viktigt!
Detta API uppfyller inte CLS.
- Alternativ som uppfyller CLS
- System.Int64.TryParse(String, Int64)
Försöker konvertera strängrepresentationen av ett tal till dess 32-bitars osignerade heltalsmotsvarighet. Ett returvärde anger om konverteringen lyckades eller misslyckades.
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
Parametrar
- s
- String
En sträng som representerar talet som ska konverteras.
- result
- UInt32
När den här metoden returneras innehåller det 32-bitars osignerade heltalsvärdet som motsvarar talet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte har rätt format eller representerar ett tal som är mindre än UInt32.MinValue eller större än UInt32.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
- Attribut
Exempel
I följande exempel anropas TryParse(String, UInt32) metoden en gång för varje element i en strängmatris.
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.
Kommentarer
Metoden TryParse liknar Parse metoden, förutom att den inte utlöser ett undantag om konverteringen misslyckas. Den här metoden eliminerar behovet av att använda undantagshantering för att testa för en FormatException om s är ogiltig och kan inte parsas.
Parametern s ska vara strängrepresentationen av ett decimaltal i följande formulär:
[ws][sign]digits[ws]
Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.
| Element | Description |
|---|---|
| Ws | Valfritt blanksteg. |
| signera | Ett valfritt tecken. Giltiga teckentecken bestäms av NumberFormatInfo.NegativeSign egenskaperna och NumberFormatInfo.PositiveSign för den aktuella kulturen. |
| Siffror | En sekvens med decimalsiffror från 0 till 9. |
Parametern s tolkas med hjälp NumberStyles.Integer av formatet . Förutom decimaltalen tillåts endast inledande och avslutande blanksteg med ett inledande tecken. Om du uttryckligen vill definiera formatelementen med den kulturspecifika formateringsinformation som kan finnas i sanropar TryParse(String, NumberStyles, IFormatProvider, UInt32) du metoden.
Note
Strängen som anges av parametern s får inte innehålla några gruppavgränsare eller decimalavgränsare, och den får inte ha en bråkdelsdel.
Parametern s parsas med hjälp av formateringsinformationen i ett NumberFormatInfo objekt för den aktuella systemkulturen. Mer information finns i NumberFormatInfo.CurrentInfo.
Den här överlagringen tolkar alla siffror i parametern s som decimalsiffror. Om du vill parsa strängrepresentationen av ett hexadecimalt nummer anropar du överlagringen TryParse(String, NumberStyles, IFormatProvider, UInt32) i stället.
Se även
- Parse(String)
- ToString()
- Parsing Numeriska strängar i .NET
- Exempel: Formateringsverktyget för .NET Core WinForms (C#)
- Exempel: Formateringsverktyget för .NET Core WinForms (Visual Basic)
Gäller för
TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Försöker parsa ett teckenintervall till ett värde.
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
Parametrar
- s
- ReadOnlySpan<Char>
Det intervall med tecken som ska parsas.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- UInt32
När den här metoden returneras innehåller resultatet av parsning seller ett odefinierat värde vid fel.
Returer
trueom s har parsats, annars . false
Gäller för
TryParse(String, IFormatProvider, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Försöker parsa en sträng till ett värde.
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
Parametrar
- s
- String
Strängen som ska parsas.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- UInt32
När den här metoden returneras innehåller resultatet av parsning s eller ett odefinierat värde vid fel.
Returer
trueom s har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Försöker parsa ett intervall med UTF-8 tecken till ett värde.
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
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Intervallet för UTF-8 tecken att parsa.
- style
- NumberStyles
En bitvis kombination av talformat som kan finnas i utf8Text.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.
- result
- UInt32
Vid retur innehåller resultatet av parsning utf8Text eller ett odefinierat värde vid fel.
Returer
trueom utf8Text har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Byte>, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Försöker konvertera ett UTF-8-teckensintervall som innehåller strängrepresentationen av ett tal till dess 32-bitars osignerade heltalsmotsvarighet.
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
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Ett intervall som innehåller UTF-8 tecken som representerar talet som ska konverteras.
- result
- UInt32
När den här metoden returneras innehåller det 32-bitars osignerade heltalsvärdet som motsvarar talet i utf8Text om konverteringen lyckades eller noll om konverteringen misslyckades. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i resultatet skrivs över.
Returer
true om utf8Text har konverterats, annars false.
Gäller för
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Viktigt!
Detta API uppfyller inte CLS.
Försöker konvertera spanrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess 32-bitars osignerade heltalsekvivalent. Ett returvärde anger om konverteringen lyckades eller misslyckades.
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, [Runtime::InteropServices::Out] System::UInt32 % result);
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
Parametrar
- s
- ReadOnlySpan<Char>
Ett intervall som innehåller de tecken som representerar talet som ska konverteras. Intervallet tolkas med hjälp av det format som anges av parametern style .
- style
- NumberStyles
En bitvis kombination av uppräkningsvärden som anger det tillåtna formatet för s. Ett typiskt värde att ange är Integer.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- UInt32
När den här metoden returneras innehåller det 32-bitars osignerade heltalsvärdet som motsvarar talet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är i ett format som är kompatibelt med style, eller representerar ett tal som är mindre än UInt32.MinValue eller större än UInt32.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
- Attribut
Gäller för
TryParse(String, NumberStyles, IFormatProvider, UInt32)
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
- Källa:
- UInt32.cs
Viktigt!
Detta API uppfyller inte CLS.
- Alternativ som uppfyller CLS
- System.Int64.TryParse(String, Int64)
Försöker konvertera strängrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess 32-bitars osignerade heltalsekvivalent. Ett returvärde anger om konverteringen lyckades eller misslyckades.
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
Parametrar
- s
- String
En sträng som representerar talet som ska konverteras. Strängen tolkas med hjälp av det format som anges av parametern style .
- style
- NumberStyles
En bitvis kombination av uppräkningsvärden som anger det tillåtna formatet för s. Ett typiskt värde att ange är Integer.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- UInt32
När den här metoden returneras innehåller det 32-bitars osignerade heltalsvärdet som motsvarar talet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är i ett format som är kompatibelt med style, eller representerar ett tal som är mindre än UInt32.MinValue eller större än UInt32.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
- Attribut
Undantag
style är inte ett NumberStyles värde.
-eller-
style är inte en kombination av AllowHexSpecifier och HexNumber värden.
Exempel
I följande exempel anropas TryParse(String, NumberStyles, IFormatProvider, UInt32) metoden med ett antal olika strängar och NumberStyles värden.
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.
Kommentarer
Metoden TryParse(String, NumberStyles, IFormatProvider, UInt32) liknar Parse(String, NumberStyles, IFormatProvider) metoden, förutom att den inte utlöser ett undantag om konverteringen misslyckas. Den här metoden eliminerar behovet av att använda undantagshantering för att testa för en FormatException om s är ogiltig och kan inte parsas korrekt.
Parametern style definierar formatelementen (till exempel tomt utrymme eller ett positivt eller negativt tecken) som tillåts i parametern s för att parsningsåtgärden ska lyckas. Det måste vara en kombination av bitflaggor från NumberStyles uppräkningen. Beroende på värdet för stylekan parametern s innehålla följande element:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
Objekt inom hakparenteser ([ och ]) är valfria. Om parametern style innehåller NumberStyles.AllowHexSpecifierkan parametern s innehålla följande element:
[ws]hexdigits[ws]
I följande tabell beskrivs varje element.
| Element | Description |
|---|---|
| Ws | Valfritt blanksteg. Tomt utrymme kan visas i början av s om style innehåller NumberStyles.AllowLeadingWhite flaggan, eller i slutet av s om style innehåller NumberStyles.AllowTrailingWhite flaggan. |
| $ | En kulturspecifik valutasymbol. Dess position i strängen definieras av CurrencyPositivePattern egenskapen för objektet NumberFormatInfo som returneras av GetFormat parametermetoden provider . Valutasymbolen kan visas i s om style den NumberStyles.AllowCurrencySymbol innehåller flaggan. |
| signera | Ett valfritt tecken. Tecknet kan visas i början av s om style innehåller NumberStyles.AllowLeadingSign flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingSign flaggan. Parenteser kan användas i s för att ange ett negativt värde om style den NumberStyles.AllowParentheses innehåller flaggan. Men om det negativa tecknet finns s kan det bara representera värdet noll för att parsningsåtgärden ska lyckas. |
| Siffror | En sekvens med siffror från 0 till 9. |
| , | En kulturspecifik gruppavgränsare. Gruppavgränsaren för kulturen som anges av provider kan visas i s om style den NumberStyles.AllowThousands innehåller flaggan. |
| . | Ett kulturspecifikt decimaltecken. Decimaltecknet för kulturen som anges av provider kan visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| fractional_digits | En eller flera förekomster av siffran 0. Bråksiffror kan bara visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| E | Tecknet "e" eller "E", som anger att värdet representeras i exponentiell (vetenskaplig) notation. Parametern s kan representera ett tal i exponentiell notation om style den NumberStyles.AllowExponent innehåller flaggan. |
| exponential_digits | En sekvens med siffror från 0 till 9. Parametern s kan representera ett tal i exponentiell notation om style den NumberStyles.AllowExponent innehåller flaggan. |
| hexdigits | En sekvens med hexadecimala siffror från 0 till f eller 0 till och med F. |
Note
Alla avslutande NUL-tecken (U+0000) i s ignoreras av parsningsåtgärden, oavsett argumentets style värde.
En sträng med endast decimalsiffror (vilket motsvarar NumberStyles.None flaggan) parsar alltid korrekt. De flesta av de återstående NumberStyles medlemmarna styr element som kan finnas, men som inte måste finnas i den här indatasträngen. Följande tabell visar hur enskilda NumberStyles medlemmar påverkar de element som kan finnas i s.
Icke-sammansatta NumberStyles värden |
Element som tillåts i värde utöver siffror |
|---|---|
| None | Endast decimalsiffror. |
| AllowDecimalPoint | Decimaltecknet (.) och fractional_digits element. Men fractional_digits får bara bestå av en eller flera 0 siffror, eller så returnerar falsemetoden . |
| AllowExponent | Tecknet "e" eller "E", som anger exponentiell notation, tillsammans med exponential_digits. Om s representerar ett tal i exponentiell notation får det inte ha en icke-noll, bråkkomponent. |
| AllowLeadingWhite |
WS-elementet i början av s. |
| AllowTrailingWhite |
WS-elementet i slutet av s. |
| AllowLeadingSign | Teckenelementet före siffror. |
| AllowTrailingSign | Teckenelementet efter siffror. |
| AllowParentheses | Teckenelementet i form av parenteser som omger ett numeriskt nollvärde. |
| AllowThousands | Gruppavgränsaren (,). |
| AllowCurrencySymbol | Valutaelementet ($). |
| Currency | Alla element. Kan dock s inte representera ett hexadecimalt tal eller ett tal i exponentiell notation. |
| Float |
WS-elementet i början eller slutet av s, signerar i början av soch decimaltecknet (.). Parametern s kan också använda exponentiell notation. |
| Number | Elementen ws, sign, group separator (,) och decimaltecknet (.). |
| Any | Alla element. Kan dock s inte representera ett hexadecimalt tal. |
NumberStyles.AllowHexSpecifier Om flaggan används s måste vara ett hexadecimalt värde. De enda andra flaggorna som kan finnas i style är NumberStyles.AllowLeadingWhite och NumberStyles.AllowTrailingWhite. (Uppräkningen NumberStyles har ett sammansatt format, HexNumber, som innehåller båda blankstegsflaggorna.)
Note
Om s är strängrepresentationen av ett hexadecimalt tal kan det inte föregås av någon dekoration (till exempel 0x eller &h) som särskiljer det som ett hexadecimalt tal. Detta gör att konverteringen misslyckas.
Parametern provider är en IFormatProvider implementering. Dess GetFormat metod returnerar ett NumberFormatInfo objekt som ger kulturspecifik information om formatet sför . Parametern provider kan vara något av följande:
Ett CultureInfo objekt som representerar kulturen som tillhandahåller formateringsinformation. Dess GetFormat metod returnerar det NumberFormatInfo objekt som innehåller numerisk formateringsinformation för den kulturen.
Ett NumberFormatInfo objekt som innehåller numerisk formateringsinformation. (Dess implementering av GetFormat just returnerar sig själv.)
Ett anpassat objekt som implementerar IFormatProvider. Metoden GetFormat instansierar och returnerar objektet NumberFormatInfo som tillhandahåller formateringsinformation.
Om provider är nullNumberFormatInfo används objektet för den aktuella kulturen.