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ść.

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 16-bitową niepodpisaną liczbę całkowitą równoważną. 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ść.

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

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

TryParse(ReadOnlySpan<Byte>, UInt16)

Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na odpowiednik 16-bitowej liczby całkowitej 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ść.

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 przeanalizowania.

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące utf8Textelementu .

result
UInt16

Po powrocie zawiera wynik pomyślnego analizowania utf8Text lub niezdefiniowanej wartości po awarii.

Zwraca

true jeśli utf8Text został pomyślnie przeanalizowany; 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 przekonwertowania.

result
UInt16

Gdy ta metoda zostanie zwrócona, zawiera 16-bitową wartość całkowitą bez znaku, która jest równoważna 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 s , jeśli parametr ma wartość null lub Empty, nie jest w poprawnym formacie. lub reprezentuje liczbę mniejszą niż UInt16.MinValue lub większą niż UInt16.MaxValue. 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, 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 16-bitową niepodpisaną liczbę całkowitą równoważną. 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 zostanie zwrócona, zawiera 16-bitową wartość całkowitą bez znaku, która jest równoważna 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 s 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 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

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ć reprezentacją ciągu liczby dziesiętnej w następującej postaci:

[ws] [znak] cyfry[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 przy użyciu informacji o formatowaniu specyficznym dla kultury, które mogą być obecne w metodzie s, wywołaj metodę TryParse(String, NumberStyles, IFormatProvider, UInt16) .

Parametr s jest analizowany przy użyciu informacji formatowania 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 szesnastkowej liczby, wywołaj TryParse(String, NumberStyles, IFormatProvider, UInt16) zamiast tego 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 dotyczące selementu .

result
UInt16

Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania swartości lub niezdefiniowanej wartości w przypadku niepowodzenia.

Zwraca

true jeśli s został pomyślnie przeanalizowany; 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ść.

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 dotyczące selementu .

result
UInt16

Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania s lub niezdefiniowanej wartości po awarii.

Zwraca

true jeśli s został pomyślnie przeanalizowany; 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ść.

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 przeanalizowania.

style
NumberStyles

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

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące utf8Textelementu .

result
UInt16

Po powrocie zawiera wynik pomyślnego analizowania utf8Text lub niezdefiniowanej wartości po awarii.

Zwraca

true jeśli utf8Text został pomyślnie przeanalizowany; 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 16-bitową liczbę całkowitą 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 przekonwertowania.

result
UInt16

Gdy ta metoda zwraca wartość , zawiera 16-bitową niepodpisaną liczbę 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 niezainicjowany; każda wartość pierwotnie podana w wyniku zostanie zastąpiona.

Zwraca

truejeśli utf8Text pomyślnie przekonwertowano; 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 konwersji. 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 zwraca wartość 16-bitową niepodpisaną liczbę całkowitą równoważną liczbie zawartej w smetodzie , 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 jest w formacie zgodnym z parametrem stylelub 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, 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 zwraca wartość 16-bitową niepodpisaną liczbę całkowitą równoważną liczbie zawartej w smetodzie , 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 jest w formacie zgodnym z parametrem stylelub 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

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 w celu przetestowania elementu 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ę pomyślnie. Musi to być kombinacja flag bitowych z NumberStyles wyliczenia. W zależności od wartości styleparametr może s 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ć s do wskazywania wartości ujemnej, jeśli style zawiera flagę NumberStyles.AllowParentheses . Jednak jeśli znak ujemny jest obecny, s może reprezentować tylko wartość zero dla operacji analizy, aby zakończyć się pomyślnie.

Cyfr Sekwencja cyfr z zakresu od 0 do 9.

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

. Symbol dziesiętny specyficzny dla kultury. Symbol punktu dziesiętnego kultury określonej przez provider program może pojawić się w s pliku , 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 od 0 do F.

Uwaga

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

Ciąg z cyframi dziesiętnymi (który odpowiada flagi NumberStyles.None ) zawsze jest analizowanych pomyślnie. Większość pozostałych NumberStyles elementów członkowskich kontroluje, które mogą być obecne, ale nie muszą być obecne, w tym ciągu wejściowym. W poniższej tabeli przedstawiono, jak poszczególne NumberStyles elementy członkowskie wpływają na elementy, które mogą być obecne w programie s.

Wartości nieskładne NumberStyles Dodatkowe (poza cyframi) elementy dozwolone w wartości
None Tylko cyfry dziesiętne.
AllowDecimalPoint Liczba dziesiętna (.) i fractional_digits elementów. Jednak fractional_digits musi składać się tylko z co najmniej jednej cyfry lub metoda zwraca wartość false.
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 ułamkowego niezerowego.
AllowLeadingWhite Element ws na początku .s
AllowTrailingWhite Element ws na końcu elementu s.
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 grup (,).
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 sznaku na początku , i symbol separatora dziesiętnego s(.). Parametr s może również używać notacji wykładniczej.
Number Elementy ws, sign, group separator (,) i decimal point (.).
Any Wszystkie elementy. s Nie można jednak reprezentować liczby szesnastkowej.

Jeśli flaga NumberStyles.AllowHexSpecifier jest używana, s musi być wartością szesnastkową. Prawidłowe cyfry szesnastkowe to od 0 do 9, od f i od A do F. Prefiks, taki jak "0x", nie jest obsługiwany i powoduje niepowodzenie operacji analizy. Jedynymi innymi flagami, które mogą być obecne w systemie style , są i NumberStyles.AllowLeadingWhiteNumberStyles.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ć poprzedzony żadną dekoracją (taką jak 0x lub &h), która odróżnia ją jako liczbę szesnastkową. To powoduje niepowodzenie konwersji.

Parametr provider jest implementacją IFormatProvider . Metoda GetFormat zwraca NumberFormatInfo obiekt, który dostarcza informacji specyficznych dla kultury o formacie s. Parametr provider może być jednym z następujących:

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

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

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

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

Zobacz też

Dotyczy