UInt32.TryParse Metod

Definition

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

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.

Se även

Gäller för