Sdílet prostřednictvím


Int16.TryParse Metoda

Definice

Převede řetězcové vyjádření čísla na jeho 16bitové celé číslo se znaky. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

Přetížení

Name Description
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16)

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

TryParse(ReadOnlySpan<Char>, Int16)

Převede reprezentaci čísla ve formátu specifickém pro jazykovou verzi na 16bitové celé číslo podepsaného ekvivalentem. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(String, Int16)

Převede řetězcové vyjádření čísla na jeho 16bitové celé číslo se znaky. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16)

Pokusí se analyzovat rozsah znaků do hodnoty.

TryParse(String, IFormatProvider, Int16)

Pokusí se analyzovat řetězec do hodnoty.

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

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

TryParse(ReadOnlySpan<Byte>, Int16)

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho 16bitový ekvivalent celého čísla.

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

Převede reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 16bitový ekvivalent celého čísla. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(String, NumberStyles, IFormatProvider, Int16)

Převede řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 16bitový ekvivalent celého čísla. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16)

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

provider
IFormatProvider

Objekt, který poskytuje informace o utf8Textformátování specifické pro jazykovou verzi .

result
Int16

Při vrácení obsahuje výsledek úspěšné utf8Text analýzy nebo nedefinovanou hodnotu selhání.

Návraty

true pokud utf8Text byl úspěšně analyzován; jinak , false.

Platí pro

TryParse(ReadOnlySpan<Char>, Int16)

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Převede reprezentaci čísla ve formátu specifickém pro jazykovou verzi na 16bitové celé číslo podepsaného ekvivalentem. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] short % result);
public static bool TryParse(ReadOnlySpan<char> s, out short result);
static member TryParse : ReadOnlySpan<char> * int16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Short) As Boolean

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky, které představují číslo k převodu.

result
Int16

Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v s, pokud převod proběhl úspěšně, nebo nula, pokud převod selhal. Převod selže, pokud s je null nebo Empty představuje číslo menší než Int16.MinValue nebo větší než Int16.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.

Návraty

true pokud s byl úspěšně převeden; jinak , false.

Platí pro

TryParse(String, Int16)

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Převede řetězcové vyjádření čísla na jeho 16bitové celé číslo se znaky. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] short % result);
public static bool TryParse(string s, out short result);
public static bool TryParse(string? s, out short result);
static member TryParse : string * int16 -> bool
Public Shared Function TryParse (s As String, ByRef result As Short) As Boolean

Parametry

s
String

Řetězec obsahující číslo, které chcete převést.

result
Int16

Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v s, pokud převod proběhl úspěšně, nebo nula, pokud převod selhal. Převod selže, s pokud je null parametr nebo Empty, není ve správném formátu nebo představuje číslo menší než Int16.MinValue nebo větší než Int16.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.

Návraty

true pokud s byl úspěšně převeden; jinak , false.

Příklady

Následující příklad volá metodu Int16.TryParse(String, Int16) s několika různými řetězcovými hodnotami.

using System;

public class StringParsing
{
   public static void Main()
   {
      TryToParse(null);
      TryToParse("16051");
      TryToParse("9432.0");
      TryToParse("16,667");
      TryToParse("   -322   ");
      TryToParse("+4302");
      TryToParse("(100);");
      TryToParse("01FA");
   }

   private static void TryToParse(string value)
   {
      short number;
      bool result = Int16.TryParse(value, out number);
      if (result)
      {
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      else
      {
         if (value == null) value = "";
         Console.WriteLine("Attempted conversion of '{0}' failed.", value);
      }
   }
}
// The example displays the following output to the console:
//       Attempted conversion of '' failed.
//       Converted '16051' to 16051.
//       Attempted conversion of '9432.0' failed.
//       Attempted conversion of '16,667' failed.
//       Converted '   -322   ' to -322.
//       Converted '+4302' to 4302.
//       Attempted conversion of '(100)' failed.
//       Attempted conversion of '01FA' failed.
open System

let tryToParse (value: string) =
    match Int16.TryParse value with
    | true, number -> printfn "Converted '{value}' to {number}."
    | _ ->
        let value = if isNull value then "" else value
        printfn $"Attempted conversion of '{value}' failed."

tryToParse null
tryToParse "16051"
tryToParse "9432.0"
tryToParse "16,667"
tryToParse "   -322   "
tryToParse "+4302"
tryToParse "(100);"
tryToParse "01FA"

// The example displays the following output to the console:
//       Attempted conversion of '' failed.
//       Converted '16051' to 16051.
//       Attempted conversion of '9432.0' failed.
//       Attempted conversion of '16,667' failed.
//       Converted '   -322   ' to -322.
//       Converted '+4302' to 4302.
//       Attempted conversion of '(100)' failed.
//       Attempted conversion of '01FA' failed.
Module StringParsing
   Public Sub Main()
      TryToParse(Nothing)
      TryToParse("16051")
      TryToParse("9432.0")
      TryToParse("16,667")
      TryToParse("   -322   ")
      TryToParse("+4302")
      TryToParse("(100)")
      TryToParse("01FA")
      
   End Sub
   
   Private Sub TryToParse(value As String)
      Dim number As Int16
      Dim result As Boolean = Int16.TryParse(value, number)
      If result Then
         Console.WriteLine("Converted '{0}' to {1}.", value, number)
      Else
         If value Is Nothing Then value = "" 
         Console.WriteLine("Attempted conversion of '{0}' failed.", value)
      End If     
   End Sub
End Module
' The example displays the following output to the console:
'       Attempted conversion of '' failed.
'       Converted '16051' to 16051.
'       Attempted conversion of '9432.0' failed.
'       Attempted conversion of '16,667' failed.
'       Converted '   -322   ' to -322.
'       Converted '+4302' to 4302.
'       Attempted conversion of '(100)' failed.
'       Attempted conversion of '01FA' failed.

Některé řetězce, které TryParse(String, Int16) metoda nemůže převést v tomto příkladu, jsou:

  • "9432.0". Převod selže, protože řetězec nemůže obsahovat oddělovač desetinných míst; musí obsahovat pouze integrální číslice.

  • "16,667". Převod selže, protože řetězec nemůže obsahovat oddělovače skupin; musí obsahovat pouze integrální číslice.

  • "(100)". Převod selže, protože řetězec nemůže obsahovat jiné záporné znaménko, než které definuje aktuální jazyková NumberFormatInfo.NegativeSign verze a NumberFormatInfo.NumberNegativePattern vlastnosti.

  • "01FA". Převod selže, protože řetězec nemůže obsahovat šestnáctkové číslice; musí obsahovat pouze desítkové číslice.

Poznámky

Metoda Int16.TryParse(String, Int16) se liší od Int16.Parse(String) metody vrácením logické hodnoty, která označuje, zda byla operace analýzy úspěšná místo vrácení parsované Int16 hodnoty. Eliminuje nutnost použít zpracování výjimek k otestování v FormatException případě, že s je neplatný a nelze jej úspěšně analyzovat.

Parametr s by měl být řetězcovou reprezentací čísla ve formuláři:

[ws] [sign]digits[ws]

Položky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
Ws Volitelné prázdné znaky.
znaménko Volitelné znaménko.
Číslic Posloupnost číslic v rozsahu od 0 do 9

Parametr s se interpretuje pomocí NumberStyles.Integer stylu. Kromě desetinných číslic jsou povoleny pouze úvodní a koncové mezery společně s počátečním symbolem. Chcete-li explicitně definovat prvky stylu spolu s informacemi o formátování specifické pro jazykovou verzi, které mohou být přítomny v s, použijte metodu Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) .

Parametr s je analyzován pomocí informací o formátování v objektu NumberFormatInfo , který je inicializován pro aktuální systémovou jazykovou verzi. Další informace najdete na webu CurrentInfo.

Toto přetížení TryParse metody interpretuje všechny číslice v parametru s jako desítkové číslice. Chcete-li parsovat řetězcovou reprezentaci šestnáctkového čísla, zavolejte Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) přetížení.

Viz také

Platí pro

TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16)

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Pokusí se analyzovat rozsah znaků do hodnoty.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah znaků, které se mají analyzovat.

provider
IFormatProvider

Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .

result
Int16

Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s, nebo nedefinovanou hodnotu při selhání.

Návraty

true pokud s byl úspěšně analyzován; jinak , false.

Platí pro

TryParse(String, IFormatProvider, Int16)

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Pokusí se analyzovat řetězec do hodnoty.

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

Parametry

s
String

Řetězec, který se má analyzovat.

provider
IFormatProvider

Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .

result
Int16

Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s nebo nedefinovanou hodnotu při selhání.

Návraty

true pokud s byl úspěšně analyzován; jinak , false.

Platí pro

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

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

style
NumberStyles

Bitová kombinace stylů čísel, které mohou být přítomny v utf8Text.

provider
IFormatProvider

Objekt, který poskytuje informace o utf8Textformátování specifické pro jazykovou verzi .

result
Int16

Při vrácení obsahuje výsledek úspěšné utf8Text analýzy nebo nedefinovanou hodnotu selhání.

Návraty

true pokud utf8Text byl úspěšně analyzován; jinak , false.

Platí pro

TryParse(ReadOnlySpan<Byte>, Int16)

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho 16bitový ekvivalent celého čísla.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah obsahující znaky UTF-8 představující číslo, které se má převést.

result
Int16

Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v utf8Text případě úspěchu převodu nebo nula, pokud převod selhal. Tento parametr je předán neinicializovaný; jakákoli hodnota původně zadaná ve výsledku se přepíše.

Návraty

true pokud utf8Text byl úspěšně převeden; jinak , false.

Platí pro

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

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Převede reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 16bitový ekvivalent celého čísla. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky představující číslo, které se má převést. Rozsah se interpretuje pomocí stylu určeného parametrem style.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje prvky stylu, které mohou být přítomny v s. Typická hodnota, kterou je třeba zadat, je Integer.

provider
IFormatProvider

Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .

result
Int16

Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v s, pokud převod proběhl úspěšně, nebo nula, pokud převod selhal. Převod selže, pokud s je null parametr nebo Empty, není ve formátu kompatibilním stylenebo představuje číslo menší než Int16.MinValue nebo větší než Int16.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.

Návraty

true pokud s byl úspěšně převeden; jinak , false.

Platí pro

TryParse(String, NumberStyles, IFormatProvider, Int16)

Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs
Zdroj:
Int16.cs

Převede řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 16bitový ekvivalent celého čísla. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

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

Parametry

s
String

Řetězec obsahující číslo, které chcete převést. Řetězec se interpretuje pomocí stylu určeného znakem style.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje prvky stylu, které mohou být přítomny v s. Typická hodnota, kterou je třeba zadat, je Integer.

provider
IFormatProvider

Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .

result
Int16

Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v s, pokud převod proběhl úspěšně, nebo nula, pokud převod selhal. Převod selže, pokud s je null parametr nebo Empty, není ve formátu kompatibilním stylenebo představuje číslo menší než Int16.MinValue nebo větší než Int16.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.

Návraty

true pokud s byl úspěšně převeden; jinak , false.

Výjimky

style není NumberStyles hodnota.

-nebo-

style není kombinací AllowHexSpecifier a HexNumber hodnot.

Příklady

Následující příklad volá metodu Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) s několika různými řetězcovými hodnotami.

using System;
using System.Globalization;

public class StringParsing
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;

      numericString = "10677";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);

      numericString = "-30677";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);

      numericString = "10345.00";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "10345.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "22,593";
      styles = NumberStyles.Integer | NumberStyles.AllowThousands;
      CallTryParse(numericString, styles);

      numericString = "12E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles);

      numericString = "12E03";
      CallTryParse(numericString, styles);

      numericString = "80c1";
      CallTryParse(numericString, NumberStyles.HexNumber);

      numericString = "0x80C1";
      CallTryParse(numericString, NumberStyles.HexNumber);
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      short number;
      bool result = Int16.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 to the console:
//       Converted '10677' to 10677.
//       Attempted conversion of '-30677' failed.
//       Converted '10345.00' to 10345.
//       Attempted conversion of '10345.72' failed.
//       Converted '22,593' to 22593.
//       Attempted conversion of '12E-01' failed.
//       Converted '12E03' to 12000.
//       Converted '80c1' to -32575.
//       Attempted conversion of '0x80C1' failed.
open System
open System.Globalization

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

[<EntryPoint>]
let main _ =
    let numericString = "10677"
    let styles = NumberStyles.Integer
    callTryParse numericString styles

    let numericString = "-30677"
    let styles = NumberStyles.None
    callTryParse numericString styles

    let numericString = "10345.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 = "22,593"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowThousands
    callTryParse numericString styles

    let numericString = "12E-01"
    let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
    callTryParse numericString styles

    let numericString = "12E03"
    callTryParse numericString styles

    let numericString = "80c1"
    callTryParse numericString NumberStyles.HexNumber

    let numericString = "0x80C1"
    callTryParse numericString NumberStyles.HexNumber

    0


// The example displays the following output to the console:
//       Converted '10677' to 10677.
//       Attempted conversion of '-30677' failed.
//       Converted '10345.00' to 10345.
//       Attempted conversion of '10345.72' failed.
//       Converted '22,593' to 22593.
//       Attempted conversion of '12E-01' failed.
//       Converted '12E03' to 12000.
//       Converted '80c1' to -32575.
//       Attempted conversion of '0x80C1' failed.
Imports System.Globalization

Module StringParsing
   Public Sub Main()
      Dim numericString As String
      Dim styles As NumberStyles
      
      numericString = "10677"
      styles = NumberStyles.Integer
      CallTryParse(numericString, styles)
      
      numericString = "-30677"
      styles = NumberStyles.None
      CallTryParse(numericString, styles)
      
      numericString = "10345.00"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)
      
      numericString = "10345.72"
      styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
      CallTryParse(numericString, styles)

      numericString = "22,593" 
      styles = NumberStyles.Integer Or NumberStyles.AllowThousands
      CallTryParse(numericString, styles)
      
      numericString = "12E-01"
      styles = NumberStyles.Integer Or NumberStyles.AllowExponent
      CallTryParse(numericString, styles) 
          
      numericString = "12E03"
      CallTryParse(numericString, styles) 
      
      numericString = "80c1"
      CallTryParse(numericString, NumberStyles.HexNumber)
      
      numericString = "0x80C1"
      CallTryParse(numericString, NumberStyles.HexNumber)
   End Sub
   
   Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
      Dim number As Short
      Dim result As Boolean = Int16.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 '10677' to 10677.
'       Attempted conversion of '-30677' failed.
'       Converted '10345.00' to 10345.
'       Attempted conversion of '10345.72' failed.
'       Converted '22,593' to 22593.
'       Attempted conversion of '12E-01' failed.
'       Converted '12E03' to 12000.
'       Converted '80c1' to -32575.
'       Attempted conversion of '0x80C1' failed.

Poznámky

Metoda Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) se liší od Int16.Parse(String, NumberStyles, IFormatProvider) metody vrácením logické hodnoty, která označuje, zda byla operace analýzy úspěšná místo vrácení parsované Int16 hodnoty. Eliminuje nutnost použít zpracování výjimek k otestování v FormatException případě, že s je neplatný a nelze jej úspěšně analyzovat.

Parametr style definuje prvky stylu (například prázdné znaky nebo kladné nebo záporné znaménko), které jsou v parametru s povolené, aby operace analýzy byla úspěšná. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . V závislosti na hodnotě stylu s může parametr obsahovat následující prvky:

[ws] [$] [znaménko] [digits,]digits[.fractional_digits][e[sign]digits][ws]

Nebo pokud parametr style zahrnuje NumberStyles.AllowHexSpecifier:

[ws]hexdigits[ws]

Položky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
Ws Volitelné prázdné znaky. Prázdné znaky se můžou objevit na začátku s , pokud style příznak obsahuje NumberStyles.AllowLeadingWhite , nebo na konci příznaku s , pokud style příznak NumberStyles.AllowTrailingWhite obsahuje.
$ Symbol měny specifický pro jazykovou verzi. Jeho pozice v řetězci je definována CurrencyPositivePattern vlastností NumberFormatInfo objektu vráceného GetFormat metodou parametru provider . Symbol měny se může zobrazit, s pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak.
znaménko Volitelné znaménko.
Číslic Posloupnost číslic od 0 do 9.
, Oddělovač tisíců specifických pro jazykovou verzi. Oddělovačtisícůch providersstyleNumberStyles.AllowThousands
. Symbol desetinné čárky specifické pro jazykovou verzi. Symbol desetinné čárky zadané jazykovou provider verzí se může zobrazit v s případě, že style obsahuje NumberStyles.AllowDecimalPoint příznak.
Fractional_digits Jeden nebo více výskytů číslice 0. Desetinná číslice se můžou zobrazovat s jenom v případě, že style příznak obsahuje NumberStyles.AllowDecimalPoint .
e Znak "e" nebo "E", který označuje, že hodnota je reprezentována exponenciálním zápisem. Parametr s může představovat číslo v exponenciálním zápisustyle, pokud NumberStyles.AllowExponent obsahuje příznak.
hexdigits Posloupnost šestnáctkových číslic od 0 do f nebo 0 až F.

Poznámka

Všechny ukončující nulové znaky (U+0000) jsou s ignorovány operací analýzy bez ohledu na hodnotu argumentu style .

Řetězec s desetinnými číslicemi (který odpovídá příznaku NumberStyles.None ) se vždy úspěšně parsuje. Většina zbývajících NumberStyles členů ovládacích prvků, které mohou být, ale nemusí být přítomny v tomto vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles členy ovlivňují prvky, které mohou být přítomny v s.

Neseparované hodnoty NumberStyles Prvky povolené v s kromě číslic
NumberStyles.None Pouze desítkové číslice.
NumberStyles.AllowDecimalPoint Prvky . a fractional_digits . Nicméně , fractional_digits se musí skládat pouze z jedné nebo více 0 číslic nebo metoda vrátí false.
NumberStyles.AllowExponent Parametr s může také použít exponenciální zápis. Pokud s představuje číslo v exponenciálním zápisu, musí představovat celé číslo v rozsahu Int16 datového typu bez nenulové desetinné komponenty.
NumberStyles.AllowLeadingWhite Prvek ws na začátku s.
NumberStyles.AllowTrailingWhite Prvek ws na konci s.
NumberStyles.AllowLeadingSign Před číslicemi se může zobrazit znaménko.
NumberStyles.AllowTrailingSign Za číslicemi se může zobrazit znaménko.
NumberStyles.AllowParentheses Prvek znaménka ve formě závorek ohraničující číselnou hodnotu.
NumberStyles.AllowThousands Prvek , .
NumberStyles.AllowCurrencySymbol Prvek $ .
NumberStyles.Currency Všechny prvky. Parametr s nemůže představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu.
NumberStyles.Float Prvek ws na začátku nebo konci sznaku , na začátku sa symbolu . Parametr s může také použít exponenciální zápis.
NumberStyles.Number Prvky ws, znaménka, oddělovač tisíců (,) a desetinná čárka (.).
NumberStyles.Any Všechny styly s výjimkou s nemohou představovat šestnáctkové číslo.

NumberStyles.AllowHexSpecifier Pokud se příznak použije, s musí být šestnáctková hodnota bez předpony. Například "9AF3" se úspěšně parsuje, ale "0x9AF3" ne. Jediné ostatní příznaky, které mohou být přítomny jsou styleNumberStyles.AllowLeadingWhite a NumberStyles.AllowTrailingWhite. (Výčet NumberStyles má složený styl, NumberStyles.HexNumberkterý obsahuje oba příznaky prázdných znaků.)

Parametr provider je IFormatProvider implementace, například CultureInfo objekt nebo NumberFormatInfo objekt, jehož GetFormat metoda vrací NumberFormatInfo objekt. Objekt NumberFormatInfo poskytuje informace specifické pro jazykovou verzi formátu s. Pokud provider ano null, NumberFormatInfo použije se objekt pro aktuální jazykovou verzi.

Viz také

Platí pro