Udostępnij za pośrednictwem


UInt16.TryParse Metoda

Definicja

Konwertuje ciąg reprezentujący liczbę na odpowiadającą mu 16-bitową liczbę całkowitą bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

Przeciążenia

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt16)

Próbuje przeanalizować zakres znaków UTF-8 w wartości.

TryParse(ReadOnlySpan<Char>, UInt16)

Próbuje przekonwertować reprezentację zakresu liczby na odpowiednik 16-bitowej liczby całkowitej bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

TryParse(String, UInt16)

Próbuje przekonwertować reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt16)

Próbuje przeanalizować zakres znaków w wartości.

TryParse(String, IFormatProvider, UInt16)

Próbuje przeanalizować ciąg w wartości.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt16)

Próbuje przeanalizować zakres znaków UTF-8 w wartości.

TryParse(ReadOnlySpan<Byte>, UInt16)

Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na 16-bitową liczbę całkowitą bez znaku.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt16)

Próbuje przekonwertować reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik 16-bitowej liczby całkowitej bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

TryParse(String, NumberStyles, IFormatProvider, UInt16)

Próbuje przekonwertować reprezentację ciągu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik 16-bitowej liczby całkowitej bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs

Próbuje przeanalizować zakres znaków UTF-8 w wartości.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = IUtf8SpanParsable<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As UShort) As Boolean

Parametry

utf8Text
ReadOnlySpan<Byte>

Zakres znaków UTF-8 do analizy.

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.utf8Text

result
UInt16

Po powrocie utf8Text zawiera wynik pomyślnego analizowania lub niezdefiniowanej wartości w przypadku błędu.

Zwraca

truejeśli utf8Text została pomyślnie przeanalizowana; w przeciwnym razie . false

Dotyczy

TryParse(ReadOnlySpan<Char>, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs
Źródło:
UInt16.cs

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Próbuje przekonwertować reprezentację zakresu liczby na odpowiednik 16-bitowej liczby całkowitej bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse (ReadOnlySpan<char> s, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, out ushort result);
static member TryParse : ReadOnlySpan<char> * uint16 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As UShort) As Boolean

Parametry

s
ReadOnlySpan<Char>

Zakres zawierający znaki reprezentujące liczbę do konwersji.

result
UInt16

Gdy ta metoda zwraca wartość , zawiera 16-bitową niepodpisaną wartość całkowitą, która jest równoważna liczbie zawartej w s, jeśli konwersja powiodła się lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, s jeśli parametr ma null wartość lub Empty, nie ma poprawnego formatu. lub reprezentuje liczbę mniejszą niż UInt16.MinValue lub większą niż UInt16.MaxValue. Ten parametr jest przekazywany niezainicjowany; każda wartość pierwotnie podana w result zostanie zastąpiona.

Zwraca

truejeśli s pomyślnie przekonwertowano; w przeciwnym razie . false

Atrybuty

Dotyczy

TryParse(String, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs
Źródło:
UInt16.cs

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Alternatywa zgodna ze specyfikacją CLS
System.Int32.TryParse(String, Int32)

Próbuje przekonwertować reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::UInt16 % result);
[System.CLSCompliant(false)]
public static bool TryParse (string s, out ushort result);
public static bool TryParse (string? s, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, out ushort result);
[<System.CLSCompliant(false)>]
static member TryParse : string * uint16 -> bool
static member TryParse : string * uint16 -> bool
Public Shared Function TryParse (s As String, ByRef result As UShort) As Boolean

Parametry

s
String

Ciąg reprezentujący liczbę, którą należy przekształcić.

result
UInt16

Gdy ta metoda zwraca wartość , zawiera 16-bitową niepodpisaną wartość całkowitą, która jest równoważna liczbie zawartej w s, jeśli konwersja powiodła się lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, s jeśli parametr ma null wartość lub Empty, nie ma poprawnego formatu lub reprezentuje liczbę mniejszą niż UInt16.MinValue lub większą niż UInt16.MaxValue. Ten parametr jest przekazywany niezainicjowany; każda wartość pierwotnie podana w result zostanie zastąpiona.

Zwraca

truejeśli s pomyślnie przekonwertowano; w przeciwnym razie . false

Atrybuty

Przykłady

Poniższy przykład wywołuje metodę TryParse(String, UInt16) raz dla każdego elementu w tablicy ciągów.

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.

Uwagi

Metoda jest podobna TryParse(String, UInt16)Parse(String) do metody , z tą różnicą, że nie zgłasza wyjątku, jeśli konwersja nie powiedzie się. Ta metoda eliminuje konieczność użycia obsługi wyjątków w celu przetestowania elementu FormatException , jeśli s jest nieprawidłowy i nie można go pomyślnie przeanalizować.

Parametr s powinien być ciągiem reprezentującym liczbę dziesiętną w następującej postaci:

[ws] [podpis] digits[ws]

Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W tabeli poniżej opisano każdy element.

Element Opis
Ws Opcjonalny odstęp.
sign Opcjonalny znak. Prawidłowe znaki są określane przez NumberFormatInfo.NegativeSign właściwości i NumberFormatInfo.PositiveSign bieżącej kultury.
Cyfr Sekwencja cyfr dziesiętnych od 0 do 9.

Uwaga

Ciąg określony przez s parametr nie może zawierać żadnych separatorów grup ani separatora dziesiętnego i nie może mieć części dziesiętnej.

Parametr s jest interpretowany przy użyciu NumberStyles.Integer stylu. Poza cyframi dziesiętnymi dopuszcza się tylko spacje początkowe i końcowe z wiodącym znakiem. Aby jawnie zdefiniować elementy stylu z informacjami o formatowaniu specyficznymi dla kultury, które mogą być obecne w spliku , wywołaj metodę TryParse(String, NumberStyles, IFormatProvider, UInt16) .

Parametr s jest analizowany przy użyciu informacji o formatowaniu w NumberFormatInfo obiekcie dla bieżącej kultury systemu. Aby uzyskać więcej informacji, zobacz NumberFormatInfo.CurrentInfo.

To przeciążenie interpretuje wszystkie cyfry w parametrze s jako cyfry dziesiętne. Aby przeanalizować reprezentację ciągu liczby szesnastkowej, wywołaj zamiast tego TryParse(String, NumberStyles, IFormatProvider, UInt16) przeciążenie.

Zobacz też

Dotyczy

TryParse(ReadOnlySpan<Char>, IFormatProvider, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs
Źródło:
UInt16.cs

Próbuje przeanalizować zakres znaków w wartości.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = ISpanParsable<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As UShort) As Boolean

Parametry

s
ReadOnlySpan<Char>

Zakres znaków do przeanalizowania.

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.s

result
UInt16

Gdy ta metoda zwraca wartość , zawiera wynik pomyślnej analizy s, lub niezdefiniowanej wartości w przypadku błędu.

Zwraca

truejeśli s została pomyślnie przeanalizowana; w przeciwnym razie . false

Dotyczy

TryParse(String, IFormatProvider, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs
Źródło:
UInt16.cs

Próbuje przeanalizować ciąg w wartości.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = IParsable<System::UInt16>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out ushort result);
static member TryParse : string * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As UShort) As Boolean

Parametry

s
String

Ciąg do analizy.

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.s

result
UInt16

Gdy ta metoda zwraca wartość , zawiera wynik pomyślnej analizy s lub niezdefiniowanej wartości w przypadku błędu.

Zwraca

truejeśli s została pomyślnie przeanalizowana; w przeciwnym razie . false

Dotyczy

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs

Próbuje przeanalizować zakres znaków UTF-8 w wartości.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean

Parametry

utf8Text
ReadOnlySpan<Byte>

Zakres znaków UTF-8 do analizy.

style
NumberStyles

Bitowa kombinacja stylów liczbowych, które mogą być obecne w .utf8Text

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury.utf8Text

result
UInt16

Po powrocie utf8Text zawiera wynik pomyślnego analizowania lub niezdefiniowanej wartości w przypadku błędu.

Zwraca

truejeśli utf8Text została pomyślnie przeanalizowana; w przeciwnym razie . false

Dotyczy

TryParse(ReadOnlySpan<Byte>, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs

Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej bez znaku.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::UInt16 % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out ushort result);
static member TryParse : ReadOnlySpan<byte> * uint16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As UShort) As Boolean

Parametry

utf8Text
ReadOnlySpan<Byte>

Zakres zawierający znaki UTF-8 reprezentujące liczbę do konwersji.

result
UInt16

Gdy ta metoda zostanie zwrócona, zawiera 16-bitową niepodpisaną wartość całkowitą równoważną liczbie zawartej w utf8Text przypadku pomyślnej konwersji lub zero, jeśli konwersja nie powiodła się. Ten parametr jest przekazywany jako niezainicjowany; każda wartość pierwotnie dostarczona w wyniku zostanie zastąpiona.

Zwraca

true jeśli utf8Text pomyślnie została przekonwertowana; w przeciwnym razie false.

Dotyczy

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs
Źródło:
UInt16.cs

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Próbuje przekonwertować reprezentację zakresu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik 16-bitowej liczby całkowitej bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result);
public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean

Parametry

s
ReadOnlySpan<Char>

Zakres zawierający znaki reprezentujące liczbę do przekonwertowania. Zakres jest interpretowany przy użyciu stylu określonego style przez parametr .

style
NumberStyles

Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format .s Typową wartością do określenia jest Integer.

provider
IFormatProvider

Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s

result
UInt16

Gdy ta metoda zostanie zwrócona, zawiera 16-bitową niepodpisaną wartość całkowitą równoważną liczbie zawartej w smetodzie , jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli parametr ma null wartość lub Empty, nie jest w formacie zgodnym z parametrem stylelub reprezentuje liczbę mniejszą niż UInt16.MinValue lub większą niż UInt16.MaxValue.s Ten parametr jest przekazywany jako niezainicjowany; każda wartość pierwotnie dostarczona w pliku result zostanie zastąpiona.

Zwraca

true jeśli s pomyślnie została przekonwertowana; w przeciwnym razie false.

Atrybuty

Dotyczy

TryParse(String, NumberStyles, IFormatProvider, UInt16)

Źródło:
UInt16.cs
Źródło:
UInt16.cs
Źródło:
UInt16.cs

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Alternatywa zgodna ze specyfikacją CLS
System.Int32.TryParse(String, Int32)

Próbuje przekonwertować reprezentację ciągu liczby w określonym stylu i formacie specyficznym dla kultury na odpowiednik 16-bitowej liczby całkowitej bez znaku. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::UInt16 % result) = System::Numerics::INumberBase<System::UInt16>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out ushort result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[System.CLSCompliant(false)]
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out ushort result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * uint16 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As UShort) As Boolean

Parametry

s
String

Ciąg reprezentujący liczbę, którą należy przekształcić. Ciąg jest interpretowany przy użyciu stylu określonego style przez parametr .

style
NumberStyles

Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format .s Typową wartością do określenia jest Integer.

provider
IFormatProvider

Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s

result
UInt16

Gdy ta metoda zostanie zwrócona, zawiera 16-bitową niepodpisaną wartość całkowitą równoważną liczbie zawartej w smetodzie , jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli parametr ma null wartość lub Empty, nie jest w formacie zgodnym z parametrem stylelub reprezentuje liczbę mniejszą niż UInt16.MinValue lub większą niż UInt16.MaxValue.s Ten parametr jest przekazywany jako niezainicjowany; każda wartość pierwotnie dostarczona w pliku result zostanie zastąpiona.

Zwraca

true jeśli s pomyślnie została przekonwertowana; w przeciwnym razie false.

Atrybuty

Wyjątki

style nie jest wartością NumberStyles .

-lub-

style nie jest kombinacją AllowHexSpecifier wartości i HexNumber .

Przykłady

Poniższy przykład wywołuje metodę TryParse(String, NumberStyles, IFormatProvider, UInt16) z wieloma różnymi ciągami i NumberStyles wartościami.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;
      
      numericString = "10603";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);
      
      numericString = "-10603";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);
      
      numericString = "29103.00";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);
      
      numericString = "10345.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "2210E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles); 
      
      numericString = "9112E-01";
      CallTryParse(numericString, styles);
          
      numericString = "312E01";
      CallTryParse(numericString, styles); 
      
      numericString = "FFC8";
      CallTryParse(numericString, NumberStyles.HexNumber);
      
      numericString = "0x8F8C";
      CallTryParse(numericString, NumberStyles.HexNumber);
   }
   
   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      ushort number;
      bool result = UInt16.TryParse(stringToConvert, styles, 
                                   CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine($"Converted '{stringToConvert}' to {number}.");
      else
         Console.WriteLine($"Attempted conversion of '{stringToConvert}' failed.");
   }
}
// The example displays the following output:
//       Converted '10603' to 10603.
//       Attempted conversion of '-10603' failed.
//       Converted '29103.00' to 29103.
//       Attempted conversion of '10345.72' failed.
//       Converted '2210E-01' to 221.
//       Attempted conversion of '9112E-01' failed.
//       Converted '312E01' to 3120.
//       Converted 'FFC8' to 65480.
//       Attempted conversion of '0x8F8C' failed.
open System
open System.Globalization

let callTryParse (stringToConvert: string) (styles: NumberStyles) =
    match UInt16.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
    | true, number ->
        printfn $"Converted '{stringToConvert}' to {number}."
    | _ -> 
        printfn $"Attempted conversion of '{stringToConvert}' failed."

do
    let numericString = "10603"
    let styles = NumberStyles.Integer
    callTryParse numericString styles
    
    let numericString = "-10603"
    let styles = NumberStyles.None
    callTryParse numericString styles
    
    let numericString = "29103.00"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
    callTryParse numericString styles
    
    let numericString = "10345.72"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
    callTryParse numericString styles

    let numericString = "2210E-01"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
    callTryParse numericString styles
    
    let numericString = "9112E-01"
    callTryParse numericString styles
        
    let numericString = "312E01"
    callTryParse numericString styles
    
    let numericString = "FFC8"
    callTryParse numericString NumberStyles.HexNumber
    
    let numericString = "0x8F8C"
    callTryParse numericString NumberStyles.HexNumber
// The example displays the following output:
//       Converted '10603' to 10603.
//       Attempted conversion of '-10603' failed.
//       Converted '29103.00' to 29103.
//       Attempted conversion of '10345.72' failed.
//       Converted '2210E-01' to 221.
//       Attempted conversion of '9112E-01' failed.
//       Converted '312E01' to 3120.
//       Converted 'FFC8' to 65480.
//       Attempted conversion of '0x8F8C' failed.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim numericString As String
      Dim styles As NumberStyles
      
      numericString = "10603"
      styles = NumberStyles.Integer
      CallTryParse(numericString, styles)
      
      numericString = "-10603"
      styles = NumberStyles.None
      CallTryParse(numericString, styles)
      
      numericString = "29103.00"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)
      
      numericString = "10345.72"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)

      numericString = "2210E-01"
      styles = NumberStyles.Integer Or NumberStyles.AllowExponent
      CallTryParse(numericString, styles) 
      
      numericString = "9112E-01"
      CallTryParse(numericString, styles)
          
      numericString = "312E01"
      CallTryParse(numericString, styles) 
      
      numericString = "FFC8"
      CallTryParse(numericString, NumberStyles.HexNumber)
      
      numericString = "0x8F8C"
      CallTryParse(numericString, NumberStyles.HexNumber)
   End Sub
   
   Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
      Dim number As UShort
      Dim result As Boolean = UInt16.TryParse(stringToConvert, styles, _
                                              CultureInfo.InvariantCulture, number)
      If result Then
         Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number)
      Else
         Console.WriteLine("Attempted conversion of '{0}' failed.", _
                           Convert.ToString(stringToConvert))
      End If                                                                           
   End Sub
End Module
' The example displays the following output to the console:
'       Converted '10603' to 10603.
'       Attempted conversion of '-10603' failed.
'       Converted '29103.00' to 29103.
'       Attempted conversion of '10345.72' failed.
'       Converted '2210E-01' to 221.
'       Attempted conversion of '9112E-01' failed.
'       Converted '312E01' to 3120.
'       Converted 'FFC8' to 65480.
'       Attempted conversion of '0x8F8C' failed.

Uwagi

Metoda jest podobna TryParse(String, NumberStyles, IFormatProvider, UInt16)Parse(String, NumberStyles, IFormatProvider) do metody, z tą różnicą, że nie zgłasza wyjątku, jeśli konwersja nie powiedzie się. Ta metoda eliminuje konieczność użycia obsługi wyjątków do testowania, FormatException jeśli s jest nieprawidłowy i nie można go pomyślnie przeanalizować.

Parametr style definiuje elementy stylu (takie jak biały znak lub znak dodatni lub ujemny), które są dozwolone w parametrze s , aby operacja analizy zakończyła się powodzeniem. Musi być kombinacją flag bitowych z wyliczenia NumberStyles . W zależności od wartości parametr może styles zawierać następujące elementy:

[ws] [][$znak][cyfry,]cyfry[.fractional_digits][E[znak]exponential_digits][ws]

Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. style Jeśli parametr zawiera AllowHexSpecifierparametr , s parametr może zawierać następujące elementy:

[ws] hexdigits[ws]

W tabeli poniżej opisano każdy element.

Ws Opcjonalne białe znaki. Białe znaki mogą pojawić się na początku s , jeśli style zawiera flagę NumberStyles.AllowLeadingWhite lub na końcu s , jeśli style zawiera flagę NumberStyles.AllowTrailingWhite .

$ Symbol waluty specyficznej dla kultury. Jego pozycja w ciągu jest definiowana przez CurrencyPositivePattern właściwość NumberFormatInfo obiektu zwróconego przez GetFormat metodę parametru provider . Symbol waluty może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowCurrencySymbol .

Znak Opcjonalny znak. Znak może pojawić się na początku, s jeśli style zawiera flagę NumberStyles.AllowLeadingSign i może pojawić się na końcu s , jeśli style zawiera flagę NumberStyles.AllowTrailingSign . Nawiasy mogą służyć do wskazywania wartości ujemnej, s jeśli style zawiera flagę NumberStyles.AllowParentheses . Jeśli jednak znak ujemny jest obecny, s może reprezentować tylko wartość zero dla operacji analizy, aby zakończyć się powodzeniem.

Cyfr Sekwencja cyfr z zakresu od 0 do 9.

, Separator grupy specyficzny dla kultury. Separator grupy określonej przez provider kulturę może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowThousands .

. Symbol dziesiętny specyficzny dla kultury. Symbol punktu dziesiętnego kultury określonej przez provider może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowDecimalPoint .

fractional_digits Co najmniej jedno wystąpienie cyfry 0. Cyfry ułamkowe mogą być wyświetlane tylko wtedy s , gdy style zawiera flagę NumberStyles.AllowDecimalPoint .

E Znak "e" lub "E", który wskazuje, że wartość jest reprezentowana w notacji wykładniczej (naukowej). Parametr s może reprezentować liczbę w notacji wykładniczej, jeśli style zawiera flagę NumberStyles.AllowExponent .

exponential_digits Sekwencja cyfr z zakresu od 0 do 9. Parametr s może reprezentować liczbę w notacji wykładniczej, jeśli style zawiera flagę NumberStyles.AllowExponent .

hexdigits Sekwencja cyfr szesnastkowa od 0 do f lub 0 do F.

Uwaga

Wszelkie znaki zakończenia NUL (U+0000) w obiekcie s są ignorowane przez operację analizowania, niezależnie od wartości argumentu style .

Ciąg z cyframi dziesiętnymi (odpowiadający NumberStyles.None flagi) zawsze jest analizowanych pomyślnie. Większość pozostałych NumberStyles elementów członkowskich kontrolki, które mogą być obecne, ale nie są wymagane do obecności, w tym ciągu wejściowym. Poniższa tabela wskazuje, jak poszczególne NumberStyles elementy członkowskie wpływają na elementy, które mogą być obecne w elemecie s.

Wartości nieskładne NumberStyles Dodatkowe (poza cyframi) elementy dozwolone w wartości
None Tylko cyfry dziesiętne.
AllowDecimalPoint Elementy dziesiętne (.) i fractional_digits . Jednak fractional_digits musi składać się tylko z co najmniej jednej cyfry lub zwraca falsemetodę .
AllowExponent Znak "e" lub "E", który wskazuje notację wykładniczą wraz z exponential_digits. Jeśli s reprezentuje liczbę w notacji wykładniczej, nie może mieć składnika niezerowego, ułamkowego.
AllowLeadingWhite Element ws na początku s.
AllowTrailingWhite Element ws na końcu selementu .
AllowLeadingSign Element znaku przed cyframi.
AllowTrailingSign Element znaku po cyfrach.
AllowParentheses Element znaku w postaci nawiasów ujętą w wartość zero liczbową.
AllowThousands Element separatora grupy (,).
AllowCurrencySymbol Element waluty ($).
Currency Wszystkie elementy. s Nie można jednak reprezentować liczby szesnastkowej ani liczby w notacji wykładniczej.
Float Element ws na początku lub na końcu s, znak na początku s, i symbol dziesiętny (.). Parametr s może również używać notacji wykładniczej.
Number Elementy ws, sign, group separator (,) i dziesiętne (.).
Any Wszystkie elementy. s Nie można jednak reprezentować liczby szesnastkowej.

Jeśli jest używana flaga NumberStyles.AllowHexSpecifier , s musi być wartością szesnastkową. Prawidłowe cyfry szesnastkowe to od 0 do 9, od f i A do F. Prefiks, taki jak "0x", nie jest obsługiwany i powoduje niepowodzenie operacji analizowania. Jedynymi innymi flagami, które mogą być obecne, styleNumberStyles.AllowLeadingWhite i NumberStyles.AllowTrailingWhite. (Wyliczenie NumberStyles ma styl złożony, HexNumber, który zawiera obie flagi odstępu).

Uwaga

Jeśli s jest reprezentacją ciągu liczby szesnastkowej, nie może być poprzedzona żadną dekoracją (taką jak 0x lub &h), która rozróżnia ją jako liczbę szesnastkowa. To powoduje niepowodzenie konwersji.

Parametr provider jest implementacją IFormatProvider . Metoda GetFormat zwraca NumberFormatInfo obiekt, który udostępnia informacje specyficzne dla kultury dotyczące formatu s. Parametr provider może być jednym z następujących:

  • CultureInfo Obiekt reprezentujący kulturę, która dostarcza informacje o formatowaniu. Metoda GetFormat zwraca NumberFormatInfo obiekt, który udostępnia informacje o formatowaniu liczbowym dla tej kultury.

  • NumberFormatInfo Obiekt, który udostępnia informacje o formatowaniu liczbowym. (Jego implementacja GetFormat po prostu zwraca się).

  • Obiekt niestandardowy, który implementuje IFormatProviderelement . Metoda GetFormat tworzy wystąpienie i zwraca NumberFormatInfo obiekt, który udostępnia informacje o formatowaniu.

Jeśli provider jest to null, NumberFormatInfo używany jest obiekt bieżącej kultury.

Zobacz też

Dotyczy