Int16.TryParse Methode

Definition

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

Überlädt

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16)

Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren.

TryParse(ReadOnlySpan<Char>, Int16)

Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

TryParse(String, Int16)

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16)

Versucht, eine Spanne von Zeichen in einen Wert zu analysieren.

TryParse(String, IFormatProvider, Int16)

Versucht, eine Zeichenfolge in einen Wert zu analysieren.

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

Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren.

TryParse(ReadOnlySpan<Byte>, Int16)

Versucht, eine UTF-8-Zeichenspanne, die die Zeichenfolgendarstellung einer Zahl enthält, in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen zu konvertieren.

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

Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

TryParse(String, NumberStyles, IFormatProvider, Int16)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16)

Source:
Int16.cs
Source:
Int16.cs

Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren.

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

Parameter

utf8Text
ReadOnlySpan<Byte>

Die Spanne der zu analysierenden UTF-8-Zeichen.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text bereitstellt.

result
Int16

Enthält bei rückgabe das Ergebnis der erfolgreichen Analyse oder einen nicht definierten utf8Text Wert bei Einem Fehler.

Gibt zurück

true , wenn utf8Text erfolgreich analysiert wurde, falseandernfalls .

Gilt für:

TryParse(ReadOnlySpan<Char>, Int16)

Source:
Int16.cs
Source:
Int16.cs
Source:
Int16.cs

Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

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

Parameter

s
ReadOnlySpan<Char>

Eine Zeichenspanne, die die zu konvertierende Zahl darstellt

result
Int16

Diese Methode gibt bei erfolgreicher Konvertierung den Wert der ganzen 16-Bit-Zahl mit Vorzeichen zurück, der der Zahl in s entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Die Konvertierung schlägt fehl, wenn der s Parameter null oder Emptyist, nicht in einem Format mit konform styleist oder eine Zahl darstellt, die kleiner als Int16.MinValue oder größer als Int16.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result überschrieben werden.

Gibt zurück

true, wenn s erfolgreich konvertiert wurde, andernfalls false.

Gilt für:

TryParse(String, Int16)

Source:
Int16.cs
Source:
Int16.cs
Source:
Int16.cs

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

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

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält.

result
Int16

Diese Methode gibt bei erfolgreicher Konvertierung den Wert der ganzen 16-Bit-Zahl mit Vorzeichen zurück, der der Zahl in s entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Die Konvertierung schlägt fehl, wenn der s Parameter null oder Emptyist, nicht das richtige Format aufweist oder eine Zahl darstellt, die kleiner als Int16.MinValue oder größer als Int16.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result überschrieben werden.

Gibt zurück

true, wenn s erfolgreich konvertiert wurde, andernfalls false.

Beispiele

Im folgenden Beispiel wird die Int16.TryParse(String, Int16) -Methode mit einer Reihe verschiedener Zeichenfolgenwerte aufgerufen.

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.

Einige der Zeichenfolgen, die die TryParse(String, Int16) -Methode in diesem Beispiel nicht konvertieren kann, sind:

  • "9432.0". Die Konvertierung schlägt fehl, da die Zeichenfolge kein Dezimaltrennzeichen enthalten kann. Er darf nur integrale Ziffern enthalten.

  • "16,667". Die Konvertierung schlägt fehl, da die Zeichenfolge keine Gruppentrennzeichen enthalten kann. Er darf nur integrale Ziffern enthalten.

  • "(100)". Die Konvertierung schlägt fehl, da die Zeichenfolge kein negatives NumberFormatInfo.NegativeSign Vorzeichen als das durch die Eigenschaften und NumberFormatInfo.NumberNegativePattern der aktuellen Kultur definierte enthalten kann.

  • "01FA". Die Konvertierung schlägt fehl, da die Zeichenfolge keine Hexadezimalstellen enthalten kann. Sie darf nur Dezimalstellen enthalten.

Hinweise

Die Int16.TryParse(String, Int16) -Methode unterscheidet sich von der Int16.Parse(String) -Methode, indem sie einen booleschen Wert zurückgibt, der angibt, ob der Analysevorgang erfolgreich war, anstatt den analysierten Int16 Wert zurückzugeben. Es entfällt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um im Fall eines FormatException zu testen, das s ungültig ist und nicht erfolgreich analysiert werden kann.

Der s Parameter sollte die Zeichenfolgendarstellung einer Zahl in folgendem Format darstellen:

[ws] [Sign]digits[ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element Beschreibung
ws Optionaler Leerraum.
sign Ein optionales Zeichen.
Zahlen Eine Sequenz von Ziffern im Bereich von 0 bis 9.

Der s Parameter wird mithilfe des Stils NumberStyles.Integer interpretiert. Zusätzlich zu den Dezimalstellen sind nur führende und nachfolgende Leerzeichen zusammen mit einem führenden Zeichen zulässig. Verwenden Sie die -Methode, um die Stilelemente explizit zusammen mit den kulturspezifischen Formatierungsinformationen zu definieren, die Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) in svorhanden sein können.

Der s Parameter wird mithilfe der Formatierungsinformationen in einem NumberFormatInfo Objekt analysiert, das für die aktuelle Systemkultur initialisiert wird. Weitere Informationen finden Sie unter CurrentInfo.

Diese Überladung der TryParse -Methode interpretiert alle Ziffern im s Parameter als Dezimalstellen. Rufen Sie die Überladung auf, um die Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) Zeichenfolgendarstellung einer Hexadezimalzahl zu analysieren.

Weitere Informationen

Gilt für:

TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16)

Source:
Int16.cs
Source:
Int16.cs
Source:
Int16.cs

Versucht, eine Spanne von Zeichen in einen Wert zu analysieren.

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

Parameter

s
ReadOnlySpan<Char>

Die Spanne der zu analysierenden Zeichen.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

result
Int16

Wenn diese Methode zurückgibt, enthält das Ergebnis der erfolgreichen sAnalyse oder einen undefinierten Wert bei Einem Fehler.

Gibt zurück

true , wenn s erfolgreich analysiert wurde, falseandernfalls .

Gilt für:

TryParse(String, IFormatProvider, Int16)

Source:
Int16.cs
Source:
Int16.cs
Source:
Int16.cs

Versucht, eine Zeichenfolge in einen Wert zu analysieren.

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

Parameter

s
String

Die zu analysierende Zeichenfolge.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

result
Int16

Wenn diese Methode zurückgibt, enthält das Ergebnis der erfolgreichen s Analyse oder einen nicht definierten Wert bei Einem Fehler.

Gibt zurück

true , wenn s erfolgreich analysiert wurde, falseandernfalls .

Gilt für:

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

Source:
Int16.cs
Source:
Int16.cs

Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren.

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

Parameter

utf8Text
ReadOnlySpan<Byte>

Die Spanne der zu analysierenden UTF-8-Zeichen.

style
NumberStyles

Eine bitweise Kombination von Zahlenformatvorlagen, die in utf8Textvorhanden sein können.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text bereitstellt.

result
Int16

Enthält bei rückgabe das Ergebnis der erfolgreichen Analyse oder einen nicht definierten utf8Text Wert bei Einem Fehler.

Gibt zurück

true , wenn utf8Text erfolgreich analysiert wurde, falseandernfalls .

Gilt für:

TryParse(ReadOnlySpan<Byte>, Int16)

Source:
Int16.cs
Source:
Int16.cs

Versucht, eine UTF-8-Zeichenspanne, die die Zeichenfolgendarstellung einer Zahl enthält, in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen zu konvertieren.

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

Parameter

utf8Text
ReadOnlySpan<Byte>

Eine Spanne, die die UTF-8-Zeichen enthält, die die zu konvertierende Zahl darstellen.

result
Int16

Wenn diese Methode zurückgibt, enthält die 16-Bit-Ganzzahl mit Vorzeichen, die der Zahl entspricht, die in utf8Text enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. Dieser Parameter wird nicht initialisiert übergeben. Im Ergebnis ursprünglich übergebene Werte werden ausnahmslos überschrieben.

Gibt zurück

true, wenn utf8Text erfolgreich konvertiert wurde, andernfalls false.

Gilt für:

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

Source:
Int16.cs
Source:
Int16.cs
Source:
Int16.cs

Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

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, [Runtime::InteropServices::Out] short % result) = System::Numerics::INumberBase<short>::TryParse;
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

Parameter

s
ReadOnlySpan<Char>

Die Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen. Die Spanne wird unter Verwendung des durch style angegebenen Stils interpretiert.

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angeben, die in s vorhanden sein können. Ein häufig angegebener Wert ist Integer.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

result
Int16

Diese Methode gibt bei erfolgreicher Konvertierung den Wert der ganzen 16-Bit-Zahl mit Vorzeichen zurück, der der Zahl in s entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Die Konvertierung schlägt fehl, wenn der s Parameter null oder Emptyist, nicht in einem Format mit konform styleist oder eine Zahl darstellt, die kleiner als Int16.MinValue oder größer als Int16.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result überschrieben werden.

Gibt zurück

true, wenn s erfolgreich konvertiert wurde, andernfalls false.

Gilt für:

TryParse(String, NumberStyles, IFormatProvider, Int16)

Source:
Int16.cs
Source:
Int16.cs
Source:
Int16.cs

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

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

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält. Die Zeichenfolge wird unter Verwendung des durch style angegebenen Formats interpretiert.

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angeben, die in s vorhanden sein können. Ein häufig angegebener Wert ist Integer.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

result
Int16

Diese Methode gibt bei erfolgreicher Konvertierung den Wert der ganzen 16-Bit-Zahl mit Vorzeichen zurück, der der Zahl in s entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Die Konvertierung schlägt fehl, wenn der s Parameter null oder Emptyist, nicht in einem Format mit konform styleist oder eine Zahl darstellt, die kleiner als Int16.MinValue oder größer als Int16.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result überschrieben werden.

Gibt zurück

true, wenn s erfolgreich konvertiert wurde, andernfalls false.

Ausnahmen

style ist kein NumberStyles-Wert.

- oder -

style ist keine Kombination von AllowHexSpecifier- und HexNumber-Werten.

Beispiele

Im folgenden Beispiel wird die Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) -Methode mit einer Reihe verschiedener Zeichenfolgenwerte aufgerufen.

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.

Hinweise

Die Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) -Methode unterscheidet sich von der Int16.Parse(String, NumberStyles, IFormatProvider) -Methode, indem sie einen booleschen Wert zurückgibt, der angibt, ob der Analysevorgang erfolgreich war, anstatt den analysierten Int16 Wert zurückzugeben. Es entfällt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um im Fall eines FormatException zu testen, das s ungültig ist und nicht erfolgreich analysiert werden kann.

Der style Parameter definiert die Stilelemente (z. B. Leerzeichen oder ein positives oder negatives Vorzeichen), die s im Parameter zulässig sind, damit der Analysevorgang erfolgreich ist. Es muss sich um eine Kombination von Bitflags aus der NumberStyles Enumeration handeln. Abhängig vom Wert des Stils kann der s Parameter die folgenden Elemente enthalten:

[ws] [$] [sign] [Digits,]digits[.fractional_digits][e[sign]digits][ws]

Oder, wenn der style Parameter enthält NumberStyles.AllowHexSpecifier:

[ws]hexdigits[ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element Beschreibung
ws Optionaler Leerraum. Leerzeichen können am Anfang von s angezeigt werden, wenn style das NumberStyles.AllowLeadingWhite Flag enthalten ist, oder am Ende von s , wenn style das NumberStyles.AllowTrailingWhite Flag enthält.
$ Ein kulturspezifisches Währungssymbol. Seine Position in der Zeichenfolge wird durch die CurrencyPositivePattern -Eigenschaft des Objekts definiert, das NumberFormatInfo von der GetFormat -Methode des provider Parameters zurückgegeben wird. Das Währungssymbol kann in s angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Flag enthält.
sign Ein optionales Zeichen.
Zahlen Eine Sequenz von Ziffern von 0 bis 9.
, Ein kulturspezifisches Tausendertrennzeichen. Das Tausendertrennzeichen der kultur, die von angegeben wird provider , kann in s angezeigt werden, wenn style das NumberStyles.AllowThousands Flag enthält.
. Ein kulturspezifisches Dezimaltrennzeichen. Das Dezimaltrennzeichensymbol der von provider angegebenen Kultur kann in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält.
fractional_digits Mindestens ein Vorkommen der Ziffer 0. Bruchstellen können nur in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthalten ist.
e Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller Notation dargestellt wird. Der s Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthalten ist.
hexdigits Eine Sequenz von Hexadezimalstellen von 0 bis f oder 0 bis F.

Hinweis

Alle endenden NUL-Zeichen (U+0000) in s werden vom Analysevorgang ignoriert, unabhängig vom Wert des style Arguments.

Eine Zeichenfolge nur mit Dezimalstellen (die dem NumberStyles.None Flag entspricht) analysiert immer erfolgreich. Die meisten der verbleibenden NumberStyles Member steuern Elemente, die in dieser Eingabezeichenfolge möglicherweise vorhanden sein, aber nicht erforderlich sind. Die folgende Tabelle gibt an, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die in svorhanden sein können.

Nicht zusammengesetzte NumberStyles-Werte Zulässige Elemente in s zusätzlich zu Ziffern
NumberStyles.None Nur Dezimalstellen.
NumberStyles.AllowDecimalPoint Die Elemente . und fractional_digits . Allerdings darf fractional_digits nur aus einer oder mehreren 0 Ziffern bestehen, oder die -Methode gibt zurück false.
NumberStyles.AllowExponent Der s Parameter kann auch exponentielle Notation verwenden. Wenn s eine Zahl in exponentieller Notation darstellt, muss sie eine ganze Zahl innerhalb des Bereichs des Int16 Datentyps ohne eine Bruchkomponente ungleich 0 darstellen.
NumberStyles.AllowLeadingWhite Das ws-Element am Anfang von s.
NumberStyles.AllowTrailingWhite Das ws-Element am Ende von s.
NumberStyles.AllowLeadingSign Ein Zeichen kann vor Ziffern angezeigt werden.
NumberStyles.AllowTrailingSign Ein Zeichen kann nach Ziffern angezeigt werden.
NumberStyles.AllowParentheses Das Zeichenelement in Form von Klammern, die den numerischen Wert einschließen.
NumberStyles.AllowThousands Das -Element.
NumberStyles.AllowCurrencySymbol Das $-Element.
NumberStyles.Currency Alle Elemente. Der s-Parameter kann keine Hexadezimalzahl oder eine Zahl in exponentieller Notation darstellen.
NumberStyles.Float Das ws-Element am Anfang oder Ende von s, signieren am Anfang von sund das Symbol . Der s Parameter kann auch exponentielle Notation verwenden.
NumberStyles.Number Die Elemente ws, vorzeichen, Tausendertrennzeichen (,) und Dezimalstellen (.).
NumberStyles.Any Alle Stile, außer s können keine Hexadezimalzahl darstellen.

Wenn das NumberStyles.AllowHexSpecifier Flag verwendet wird, s muss ein Hexadezimalwert ohne Präfix sein. Beispielsweise analysiert "9AF3" erfolgreich, "0x9AF3" jedoch nicht. Die einzigen anderen Flags, die in style vorhanden sein können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles Enumeration weist ein zusammengesetztes Format auf, NumberStyles.HexNumberdas beide Leerzeichenflags enthält.)

Der provider Parameter ist eine IFormatProvider Implementierung, z. B. ein CultureInfo -Objekt oder ein NumberFormatInfo -Objekt, dessen GetFormat -Methode ein NumberFormatInfo -Objekt zurückgibt. Das NumberFormatInfo -Objekt stellt kulturspezifische Informationen zum Format von bereit s. Wenn provider ist null, wird das NumberFormatInfo -Objekt für die aktuelle Kultur verwendet.

Weitere Informationen

Gilt für: