UInt16.Parse Methode

Definition

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende ganze 16-Bit-Zahl ohne Vorzeichen.

Überlädt

Parse(String, NumberStyles, IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturabhängigen Format in die entsprechende 16-Bit-Ganzzahl ohne Vorzeichen.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturabhängigen Format in die entsprechende 16-Bit-Ganzzahl ohne Vorzeichen.

Parse(String, NumberStyles)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil in die entsprechende 16-Bit-Ganzzahl ohne Vorzeichen.

Diese Methode ist nicht CLS-kompatibel. Die CLS-kompatible Alternative ist Parse(String, NumberStyles).

Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende ganze 16-Bit-Zahl ohne Vorzeichen.

Parse(String, IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen kulturspezifischen Format in die entsprechende ganze 16-Bit-Zahl ohne Vorzeichen.

Parse(String, NumberStyles, IFormatProvider)

Wichtig

Diese API ist nicht CLS-kompatibel.

CLS-kompatible Alternative
System.Int32.Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturabhängigen Format in die entsprechende 16-Bit-Ganzzahl ohne Vorzeichen.

public:
 static System::UInt16 Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static ushort Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static ushort Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
[System.CLSCompliant(false)]
public static ushort Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> uint16
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> uint16
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As UShort

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt. Die Zeichenfolge wird unter Verwendung des durch den style-Parameter 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.

Gibt zurück

UInt16

Eine 16-Bit-Ganzzahl ohne Vorzeichen, die der Zahl in s entspricht.

Attribute

Ausnahmen

s ist null.

style ist kein NumberStyles-Wert.

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

s weist kein mit style kompatibles Format auf.

s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

- oder - s enthält Dezimalstellen ungleich 0 (null).

Beispiele

Im folgenden Beispiel wird die Parse(String, NumberStyles, IFormatProvider) -Methode verwendet, um verschiedene Zeichenfolgendarstellungen von Zahlen in 16-Bit-Ganzzahlwerte ohne Vorzeichen zu konvertieren.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] cultureNames = { "en-US", "fr-FR" };
      NumberStyles[] styles= { NumberStyles.Integer, 
                               NumberStyles.Integer | NumberStyles.AllowDecimalPoint };
      string[] values = { "1702", "+1702.0", "+1702,0", "-1032.00",
                          "-1032,00", "1045.1", "1045,1" };
      
      // Parse strings using each culture
      foreach (string cultureName in cultureNames)
      {
         CultureInfo ci = new CultureInfo(cultureName);
         Console.WriteLine("Parsing strings using the {0} culture", 
                           ci.DisplayName);
         // Use each style.
         foreach (NumberStyles style in styles)
         {
            Console.WriteLine("   Style: {0}", style.ToString());
            // Parse each numeric string.
            foreach (string value in values)
            {
               try {
                  Console.WriteLine("      Converted '{0}' to {1}.", value, 
                                    UInt16.Parse(value, style, ci));
               }                                    
               catch (FormatException) {
                  Console.WriteLine("      Unable to parse '{0}'.", value);   
               }
               catch (OverflowException) {
                  Console.WriteLine("      '{0}' is out of range of the UInt16 type.", 
                                    value);
               }
            }
         }
      }   
   }
}
// The example displays the following output:
//       Parsing strings using the English (United States) culture
//          Style: Integer
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Unable to parse '+1702,0'.
//             Unable to parse '-1032.00'.
//             Unable to parse '-1032,00'.
//             Unable to parse '1045.1'.
//             Unable to parse '1045,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '1702' to 1702.
//             Converted '+1702.0' to 1702.
//             Unable to parse '+1702,0'.
//             '-1032.00' is out of range of the UInt16 type.
//             Unable to parse '-1032,00'.
//             '1045.1' is out of range of the UInt16 type.
//             Unable to parse '1045,1'.
//       Parsing strings using the French (France) culture
//          Style: Integer
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Unable to parse '+1702,0'.
//             Unable to parse '-1032.00'.
//             Unable to parse '-1032,00'.
//             Unable to parse '1045.1'.
//             Unable to parse '1045,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Converted '+1702,0' to 1702.
//             Unable to parse '-1032.00'.
//             '-1032,00' is out of range of the UInt16 type.
//             Unable to parse '1045.1'.
//             '1045,1' is out of range of the UInt16 type.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "fr-FR" }
      Dim styles() As NumberStyles = { NumberStyles.Integer, _
                                       NumberStyles.Integer Or NumberStyles.AllowDecimalPoint }
      Dim values() As String = { "1702", "+1702.0", "+1702,0", "-1032.00", _
                                 "-1032,00", "1045.1", "1045,1" }
      
      ' Parse strings using each culture
      For Each cultureName As String In cultureNames
         Dim ci As New CultureInfo(cultureName)
         Console.WriteLine("Parsing strings using the {0} culture", ci.DisplayName)
         ' Use each style.
         For Each style As NumberStyles In styles
            Console.WriteLine("   Style: {0}", style.ToString())
            ' Parse each numeric string.
            For Each value As String In values
               Try
                  Console.WriteLine("      Converted '{0}' to {1}.", value, _
                                    UInt16.Parse(value, style, ci))
               Catch e As FormatException
                  Console.WriteLine("      Unable to parse '{0}'.", value)   
               Catch e As OverflowException
                  Console.WriteLine("      '{0}' is out of range of the UInt16 type.", _
                                    value)         
               End Try
            Next
         Next
      Next                                    
   End Sub
End Module
' The example displays the following output:
'       Parsing strings using the English (United States) culture
'          Style: Integer
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Unable to parse '+1702,0'.
'             Unable to parse '-1032.00'.
'             Unable to parse '-1032,00'.
'             Unable to parse '1045.1'.
'             Unable to parse '1045,1'.
'          Style: Integer, AllowDecimalPoint
'             Converted '1702' to 1702.
'             Converted '+1702.0' to 1702.
'             Unable to parse '+1702,0'.
'             '-1032.00' is out of range of the UInt16 type.
'             Unable to parse '-1032,00'.
'             '1045.1' is out of range of the UInt16 type.
'             Unable to parse '1045,1'.
'       Parsing strings using the French (France) culture
'          Style: Integer
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Unable to parse '+1702,0'.
'             Unable to parse '-1032.00'.
'             Unable to parse '-1032,00'.
'             Unable to parse '1045.1'.
'             Unable to parse '1045,1'.
'          Style: Integer, AllowDecimalPoint
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Converted '+1702,0' to 1702.
'             Unable to parse '-1032.00'.
'             '-1032,00' is out of range of the UInt16 type.
'             Unable to parse '1045.1'.
'             '1045,1' is out of range of the UInt16 type.

Hinweise

Der style -Parameter definiert die Stilelemente (z. B. Leerzeichen oder das positive oder negative Vorzeichensymbol), die im -Parameter zulässig sind, s damit der Analysevorgang erfolgreich ist. Dabei muss es sich um eine Kombination von Bitflags aus der NumberStyles -Enumeration handeln.

Abhängig vom Wert von style kann der Parameter die folgenden Elemente s enthalten:

[ws] [ $ ][Vorzeichen]Ziffern[.fractional_digits][E[sign]exponential_digits][ws]

Elemente in eckigen Klammern ([ und ]) sind optional. Wenn style NumberStyles.AllowHexSpecifier enthält, kann der s -Parameter die folgenden Elemente enthalten:

[ws] hexdigits[ws]

In der folgenden Tabelle wird jedes Element beschrieben.

Element Beschreibung
ws Optionaler Leerraum. Leerraum kann am Anfang von angezeigt s werden, wenn style das Flag NumberStyles.AllowLeadingWhite einschließt, und es kann am Ende von angezeigt s werden, wenn style das Flag NumberStyles.AllowTrailingWhite einschließt.
$ Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die CurrencyPositivePattern -Eigenschaft des NumberFormatInfo -Objekts definiert, das von der GetFormat -Methode des -Parameters zurückgegeben provider wird. Das Währungssymbol kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowCurrencySymbol enthält.
sign Ein optionales Zeichen. (Die -Methode löst eine OverflowException aus, wenn s ein negatives Vorzeichen enthält und eine Zahl ungleich 0 (null) darstellt.) Das Vorzeichen kann am Anfang von angezeigt s werden, wenn style das Flag NumberStyles.AllowLeadingSign enthält, und es kann das Ende von angezeigt s werden, wenn das Flag style NumberStyles.AllowTrailingSign enthält. Klammern können in verwendet s werden, um einen negativen Wert anzugeben, wenn style das Flag NumberStyles.AllowParentheses einschließt.
Zahlen Eine Sequenz von Ziffern von 0 bis 9.
. Ein kulturspezifisches Dezimaltrennzeichen. Das Dezimaltrennzeichen der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowDecimalPoint enthält.
fractional_digits Ein oder mehrere Vorkommen der Ziffer 0-9, wenn style das NumberStyles.AllowExponent Flag enthält, oder mindestens ein Vorkommen der Ziffer 0, wenn dies nicht der Fall ist. Dezimalstellen können nur in angezeigt s werden, wenn style das Flag NumberStyles.AllowDecimalPoint enthält.
E Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Notation dargestellt wird. Der s -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das Flag NumberStyles.AllowExponent enthält.
exponential_digits Eine Sequenz von Ziffern von 0 bis 9. Der s -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das Flag NumberStyles.AllowExponent enthält.
hexdigits Eine Sequenz von Hexadezimalziffern von 0 bis f oder 0 bis F.

Hinweis

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

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

Nicht zusammengesetzte NumberStyles Werte Zusätzlich zu Ziffern zulässige Elemente s
NumberStyles.None Nur Dezimalstellen.
NumberStyles.AllowDecimalPoint Das Dezimaltrennzeichen (.) und fractional_digits Elemente. Wenn der Stil jedoch nicht das NumberStyles.AllowExponent Flag enthält, darf fractional_digits nur aus mindestens einer Ziffer bestehen. Andernfalls OverflowException wird eine ausgelöst.
NumberStyles.AllowExponent Das Zeichen "e" oder "E", das die exponentielle Notation zusammen mit exponential_digits angibt.
NumberStyles.AllowLeadingWhite Das ws-Element am Anfang von s .
NumberStyles.AllowTrailingWhite Das ws-Element am Ende von s .
NumberStyles.AllowLeadingSign Ein Vorzeichen vor Ziffern.
NumberStyles.AllowTrailingSign Ein Vorzeichen nach Ziffern.
NumberStyles.AllowParentheses Klammern vor und nach Ziffern, um einen negativen Wert anzugeben.
NumberStyles.AllowThousands Das Gruppentrennzeichen (,) -Element.
NumberStyles.AllowCurrencySymbol Das currency $ ()-Element.

Wenn das NumberStyles.AllowHexSpecifier Flag verwendet wird, s muss ein Hexadezimalwert sein. Gültige Hexadezimalziffern sind 0 bis 9, a bis f und A bis F. Ein Präfix wie "0x" wird nicht unterstützt und führt dazu, dass der Analysevorgang fehlschlägt. Die einzigen anderen Flags, die mit kombiniert werden können, NumberStyles.AllowHexSpecifier sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite . (Die NumberStyles -Enumeration enthält einen zusammengesetzten Zahlenstil, , der NumberStyles.HexNumber beide Leerzeichenflags enthält.)

Hinweis

Wenn der s Parameter die Zeichenfolgendarstellung einer Hexadezimalzahl ist, kann ihm keine Dekoration vorangestellt werden (z. B. 0x oder ), die ihn als &h Hexadezimalzahl unterscheidet. Dadurch löst der Analysevorgang eine Ausnahme aus.

Der provider -Parameter ist eine IFormatProvider Implementierung, deren GetFormat -Methode ein NumberFormatInfo -Objekt zurückgibt, das kulturspezifische Informationen zum Format von s bereitstellt. Es gibt drei Möglichkeiten, den provider -Parameter zum Bereitstellen von benutzerdefinierten Formatierungsinformationen für den Analysevorgang zu verwenden:

  • Sie können das eigentliche NumberFormatInfo Objekt übergeben, das Formatierungsinformationen bereitstellt. (Die Implementierung von GetFormat gibt sich einfach selbst zurück.)

  • Sie können ein CultureInfo -Objekt übergeben, das die Kultur angibt, deren Formatierung verwendet werden soll. Die NumberFormat -Eigenschaft stellt Formatierungsinformationen bereit.

  • Sie können eine benutzerdefinierte IFormatProvider Implementierung übergeben. Die GetFormat -Methode muss das -Objekt instanziieren und NumberFormatInfo zurückgeben, das Formatierungsinformationen bereitstellt.

Wenn provider null ist, wird das NumberFormatInfo -Objekt für die aktuelle Kultur verwendet.

Siehe auch

Gilt für

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Wichtig

Diese API ist nicht CLS-kompatibel.

Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturabhängigen Format in die entsprechende 16-Bit-Ganzzahl ohne Vorzeichen.

public static ushort Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
[System.CLSCompliant(false)]
public static ushort Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
[System.CLSCompliant(false)]
public static ushort Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> uint16
[<System.CLSCompliant(false)>]
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> uint16
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As UShort

Parameter

s
ReadOnlySpan<Char>

Eine Zeichenspanne, die die zu konvertierende Zahl darstellt Die Zeichenspanne wird unter Verwendung des durch den style-Parameter 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.

Gibt zurück

UInt16

Eine 16-Bit-Ganzzahl ohne Vorzeichen, die der Zahl in s entspricht.

Attribute

Gilt für

Parse(String, NumberStyles)

Wichtig

Diese API ist nicht CLS-kompatibel.

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil in die entsprechende 16-Bit-Ganzzahl ohne Vorzeichen.

Diese Methode ist nicht CLS-kompatibel. Die CLS-kompatible Alternative ist Parse(String, NumberStyles).

public:
 static System::UInt16 Parse(System::String ^ s, System::Globalization::NumberStyles style);
[System.CLSCompliant(false)]
public static ushort Parse (string s, System.Globalization.NumberStyles style);
public static ushort Parse (string s, System.Globalization.NumberStyles style);
[<System.CLSCompliant(false)>]
static member Parse : string * System.Globalization.NumberStyles -> uint16
static member Parse : string * System.Globalization.NumberStyles -> uint16
Public Shared Function Parse (s As String, style As NumberStyles) As UShort

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt. Die Zeichenfolge wird unter Verwendung des durch den style-Parameter angegebenen Stils interpretiert.

style
NumberStyles

Eine bitweise Kombination der Enumerationswerte, die das zulässige Format von s angeben. Ein häufig angegebener Wert ist Integer.

Gibt zurück

UInt16

Eine 16-Bit-Ganzzahl ohne Vorzeichen, die der Zahl in s entspricht.

Attribute

Ausnahmen

s ist null.

style ist kein NumberStyles-Wert.

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

s weist kein mit style kompatibles Format auf.

s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

- oder - s enthält Dezimalstellen ungleich 0 (null).

Beispiele

Im folgenden Beispiel wird versucht, jedes Element in einem Zeichenfolgenarray mithilfe einer Reihe von Werten zu NumberStyles analysieren.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values = { " 214 ", "1,064", "(0)", "1241+", " + 214 ", " +214 ", "2153.0", "1e03", "1300.0e-2" };
      NumberStyles whitespace =  NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite;
      NumberStyles[] styles = { NumberStyles.None, whitespace, 
                                NumberStyles.AllowLeadingSign | NumberStyles.AllowTrailingSign | whitespace, 
                                NumberStyles.AllowThousands | NumberStyles.AllowCurrencySymbol, 
                                NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint };

      // Attempt to convert each number using each style combination.
      foreach (string value in values)
      {
         Console.WriteLine("Attempting to convert '{0}':", value);
         foreach (NumberStyles style in styles)
         {
            try {
               ushort number = UInt16.Parse(value, style);
               Console.WriteLine("   {0}: {1}", style, number);
            }   
            catch (FormatException) {
               Console.WriteLine("   {0}: Bad Format", style);
            }
         }
         Console.WriteLine();
      }
   }
}
// The example display the following output:
//    Attempting to convert ' 214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: 214
//       Integer, AllowTrailingSign: 214
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1,064':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: 1064
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '(0)':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1241+':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 1241
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' + 214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' +214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 214
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '2153.0':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 2153
//    
//    Attempting to convert '1e03':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 1000
//    
//    Attempting to convert '1300.0e-2':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 13
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim values() As String = { " 214 ", "1,064", "(0)", "1241+", " + 214 ", " +214 ", "2153.0", "1e03", "1300.0e-2" }
      Dim whitespace As NumberStyles =  NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite
      Dim styles() As NumberStyles = { NumberStyles.None, _
                                       whitespace, _
                                       NumberStyles.AllowLeadingSign Or NumberStyles.AllowTrailingSign Or whitespace, _
                                       NumberStyles.AllowThousands Or NumberStyles.AllowCurrencySymbol, _
                                       NumberStyles.AllowExponent Or NumberStyles.AllowDecimalPoint }

      ' Attempt to convert each number using each style combination.
      For Each value As String In values
         Console.WriteLine("Attempting to convert '{0}':", value)
         For Each style As NumberStyles In styles
            Try
               Dim number As UShort = UInt16.Parse(value, style)
               Console.WriteLine("   {0}: {1}", style, number)
            Catch e As FormatException
               Console.WriteLine("   {0}: Bad Format", style)
            End Try         
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'    Attempting to convert ' 214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: 214
'       Integer, AllowTrailingSign: 214
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '1,064':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: 1064
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '(0)':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '1241+':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: 1241
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert ' + 214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert ' +214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: 214
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '2153.0':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 2153
'    
'    Attempting to convert '1e03':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 1000
'    
'    Attempting to convert '1300.0e-2':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 13

Hinweise

Der -Parameter definiert die Stilelemente (z. B. Leerzeichen, das positive oder negative Vorzeichen, das Gruppentrennzeichen oder das Dezimaltrennzeichen), die im -Parameter zulässig sind, damit der Analysevorgang erfolgreich style s ist. style muss eine Kombination von Bitflags aus der -Enumeration NumberStyles sein. Der -Parameter macht diese Methodenüberladung nützlich, wenn die Zeichenfolgendarstellung eines Hexadezimalwerts enthält, wenn das zahlenweise System (dezimal oder style s hexadezimal), das durch dargestellt wird, nur zur Laufzeit bekannt ist, oder wenn Sie Leerraum oder ein Zeichensymbol in nicht zu lassen s s möchten.

Abhängig vom Wert von kann style s der -Parameter die folgenden Elemente enthalten:

[ws] [ $ ][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Elemente in eckigen Klammern ([ und ]) sind optional. Wenn style NumberStyles.AllowHexSpecifier enthält, kann s der -Parameter die folgenden Elemente enthalten:

[ws] hexdigits[ws]

In der folgenden Tabelle wird jedes Element beschrieben.

Element Beschreibung
ws Optionaler Leerraum. Leerraum kann am Anfang von angezeigt werden, wenn das -Flag enthält, und es kann am Ende von angezeigt s style NumberStyles.AllowLeadingWhite werden, s wenn das Flag style NumberStyles.AllowTrailingWhite enthält.
$ Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die Eigenschaften NumberFormatInfo.CurrencyNegativePattern und der aktuellen Kultur NumberFormatInfo.CurrencyPositivePattern definiert. Das Währungssymbol der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowCurrencySymbol enthält.
sign Ein optionales Vorzeichen. Das Vorzeichen kann am Anfang von angezeigt werden, wenn das -Flag enthält, und es kann am Ende von angezeigt s style NumberStyles.AllowLeadingSign werden, s wenn das Flag style NumberStyles.AllowTrailingSign enthält. In können Klammern verwendet werden, s um einen negativen Wert anzugeben, wenn das Flag style NumberStyles.AllowParentheses enthält. Das negative Vorzeichensymbol kann jedoch nur mit 0 (null) verwendet werden. Andernfalls löst die -Methode eine OverflowException aus.
Zahlen

fractional_digits

exponential_digits
Eine Sequenz von Ziffern von 0 bis 9. Für fractional_digits ist nur die Ziffer 0 gültig.
, Ein kulturspezifisches Gruppentrennzeichensymbol. Das Gruppentrennzeichen der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowThousands enthält.
. Ein kulturspezifisches Dezimaltrennzeichen. Das Dezimaltrennzeichen der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowDecimalPoint enthält. Nur die Ziffer 0 kann als Bruchziffer angezeigt werden, damit der Analysevorgang erfolgreich ist. Wenn fractional_digits eine andere Ziffer enthält, FormatException wird eine ausgelöst.
E Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Notation dargestellt wird. Der s -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das Flag NumberStyles.AllowExponent enthält.
hexdigits Eine Sequenz von Hexadezimalziffern von 0 bis f oder 0 bis F.

Hinweis

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

Eine Zeichenfolge nur mit Ziffern (die dem Stil entspricht) wird immer erfolgreich analysiert, wenn sie sich im Bereich NumberStyles.None des Typs UInt16 befindet. Die meisten der verbleibenden Member steuern Elemente, die in der Eingabezeichenfolge vorhanden sein können, aber NumberStyles nicht vorhanden sein müssen. Die folgende Tabelle gibt an, wie sich NumberStyles einzelne Member auf die Elemente auswirken, die möglicherweise in vorhanden s sind.

Wert vom Typ NumberStyles Zusätzlich zu Ziffern s zulässige Elemente
None Nur das digits-Element.
AllowDecimalPoint Das Dezimaltrennzeichen (.) und Bruchziffernelemente.
AllowExponent Das Zeichen "e" oder "E", das eine exponentielle Notation angibt, sowie exponential_digits.
AllowLeadingWhite Das ws-Element am Anfang von s .
AllowTrailingWhite Das ws-Element am Ende von s .
AllowLeadingSign Das Vorzeichenelement am Anfang von s .
AllowTrailingSign Das Vorzeichenelement am Ende von s .
AllowParentheses Das Vorzeichenelement in Form von Klammern, die den numerischen Wert umschließen.
AllowThousands Das Gruppentrennzeichenelement (,).
AllowCurrencySymbol Das Währungselement ($).
Currency Alle Elemente. Kann jedoch s keine Hexadezimalzahl oder eine Zahl in exponentieller Notation darstellen.
Float Das ws-Element am Anfang oder Ende von , das Zeichen am Anfang von und das Dezimaltrennzeichen s ( s .) . Der s -Parameter kann auch exponentielle Notation verwenden.
Number Die ws Elemente , , , sign Gruppentrennzeichen( , ) und Dezimaltrennzeichen (.) .
Any Alle Elemente. Kann jedoch s keine Hexadezimalzahl darstellen.

Im Gegensatz zu den anderen Werten, die das Vorhandensein bestimmter Stilelemente in zulassen, aber nicht erfordern, bedeutet der Formatwert, dass die einzelnen numerischen Zeichen in immer als NumberStyles s NumberStyles.AllowHexSpecifier s Hexadezimalzeichen interpretiert werden. Gültige Hexadezimalzeichen sind 0-9, A-F und a-f. Ein Präfix wie "0x" wird nicht unterstützt und führt dazu, dass der Analysevorgang fehlschlägt. Die einzigen anderen Flags, die mit dem -Parameter kombiniert werden style können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite . (Die NumberStyles -Enumeration enthält einen zusammengesetzten Zahlenstil, NumberStyles.HexNumber , der beide Leerraumflags enthält.)

Hinweis

Wenn die Zeichenfolgendarstellung einer hexadezimalen Zahl ist, kann ihr keine Verzierung (z. B. oder ) vorangehende werden, die sie als s 0x &h Hexadezimalzahl unterscheidet. Dies führt dazu, dass die Konvertierung fehlschlägt.

Der s -Parameter wird mithilfe der Formatierungsinformationen in einem -Objekt NumberFormatInfo analysiert, das für die aktuelle Systemkultur initialisiert wird. Um die Kultur anzugeben, deren Formatierungsinformationen für den Analysevorgang verwendet werden, rufen Sie die -Überladung Parse(String, NumberStyles, IFormatProvider) auf.

Siehe auch

Gilt für

Parse(String)

Wichtig

Diese API ist nicht CLS-kompatibel.

CLS-kompatible Alternative
System.Int32.Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende ganze 16-Bit-Zahl ohne Vorzeichen.

public:
 static System::UInt16 Parse(System::String ^ s);
[System.CLSCompliant(false)]
public static ushort Parse (string s);
public static ushort Parse (string s);
[<System.CLSCompliant(false)>]
static member Parse : string -> uint16
static member Parse : string -> uint16
Public Shared Function Parse (s As String) As UShort

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt.

Gibt zurück

UInt16

Eine 16-Bit-Ganzzahl ohne Vorzeichen, die der Zahl in s entspricht.

Attribute

Ausnahmen

s ist null.

s weist nicht das richtige Format auf.

s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

Beispiele

Das folgende Beispiel ruft die -Methode auf, um jedes Element in einem Zeichenfolgenarray in eine Parse(String) 16-Bit-Ganzzahl ohne Vorzeichen zu konvertieren.

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "-0", "17", "-12", "185", "66012", "+0", 
                          "", null, "16.1", "28.0", "1,034" };
      foreach (string value in values)
      {
         try {
            ushort number = UInt16.Parse(value);
            Console.WriteLine("'{0}' --> {1}", value, number);
         }
         catch (FormatException) {
            Console.WriteLine("'{0}' --> Bad Format", value);
         }
         catch (OverflowException) {   
            Console.WriteLine("'{0}' --> OverflowException", value);
         }
         catch (ArgumentNullException) {
            Console.WriteLine("'{0}' --> Null", value);
         }
      }                                 
   }
}
// The example displays the following output:
//       '-0' --> 0
//       '17' --> 17
//       '-12' --> OverflowException
//       '185' --> 185
//       '66012' --> OverflowException
//       '+0' --> 0
//       '' --> Bad Format
//       '' --> Null
//       '16.1' --> Bad Format
//       '28.0' --> Bad Format
//       '1,034' --> Bad Format
Module Example
   Public Sub Main()
      Dim values() As String = { "-0", "17", "-12", "185", "66012", _ 
                                 "+0", "", Nothing, "16.1", "28.0", _
                                 "1,034" }
      For Each value As String In values
         Try
            Dim number As UShort = UInt16.Parse(value)
            Console.WriteLine("'{0}' --> {1}", value, number)
         Catch e As FormatException
            Console.WriteLine("'{0}' --> Bad Format", value)
         Catch e As OverflowException   
            Console.WriteLine("'{0}' --> OverflowException", value)
         Catch e As ArgumentNullException
            Console.WriteLine("'{0}' --> Null", value)
         End Try
      Next                                 
   End Sub
End Module
' The example displays the following output:
'       '-0' --> 0
'       '17' --> 17
'       '-12' --> OverflowException
'       '185' --> 185
'       '66012' --> OverflowException
'       '+0' --> 0
'       '' --> Bad Format
'       '' --> Null
'       '16.1' --> Bad Format
'       '28.0' --> Bad Format
'       '1,034' --> Bad Format

Hinweise

Der s Parameter sollte die Zeichenfolgendarstellung einer Zahl im folgenden Format sein.

[ws] [Signieren] 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. Gültige Vorzeichen werden durch die NumberFormatInfo.NegativeSign Eigenschaften und NumberFormatInfo.PositiveSign der aktuellen Kultur bestimmt. Das negative Vorzeichen kann jedoch nur mit 0 (null) verwendet werden. Andernfalls löst die -Methode eine OverflowException aus.
Zahlen Eine Sequenz von Ziffern im Bereich von 0 bis 9. Alle führenden Nullen werden ignoriert.

Hinweis

Die vom -Parameter angegebene s Zeichenfolge wird mithilfe des -Stils NumberStyles.Integer interpretiert. Er darf keine Gruppentrennzeichen oder Dezimaltrennzeichen enthalten und darf keinen Dezimalteil enthalten.

Der s -Parameter wird mithilfe der Formatierungsinformationen in einem -Objekt System.Globalization.NumberFormatInfo analysiert, das für die aktuelle Systemkultur initialisiert wird. Weitere Informationen finden Sie unter NumberFormatInfo.CurrentInfo. Um eine Zeichenfolge mithilfe der Formatierungsinformationen einer bestimmten Kultur zu analysieren, verwenden Sie die Parse(String, IFormatProvider) -Methode.

Siehe auch

Gilt für

Parse(String, IFormatProvider)

Wichtig

Diese API ist nicht CLS-kompatibel.

CLS-kompatible Alternative
System.Int32.Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen kulturspezifischen Format in die entsprechende ganze 16-Bit-Zahl ohne Vorzeichen.

public:
 static System::UInt16 Parse(System::String ^ s, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static ushort Parse (string s, IFormatProvider provider);
public static ushort Parse (string s, IFormatProvider? provider);
[System.CLSCompliant(false)]
public static ushort Parse (string s, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member Parse : string * IFormatProvider -> uint16
static member Parse : string * IFormatProvider -> uint16
Public Shared Function Parse (s As String, provider As IFormatProvider) As UShort

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

Gibt zurück

UInt16

Eine 16-Bit-Ganzzahl ohne Vorzeichen, die der Zahl in s entspricht.

Attribute

Ausnahmen

s ist null.

s weist nicht das richtige Format auf.

s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

Beispiele

Im folgenden Beispiel wird eine benutzerdefinierte Kultur instanziiert, die zwei Pluszeichen (++) als positives Vorzeichen verwendet. Anschließend ruft sie die Parse(String, IFormatProvider) -Methode auf, um ein Array von Zeichenfolgen mithilfe von -Objekten zu CultureInfo analysieren, die sowohl diese benutzerdefinierte Kultur als auch die invariante Kultur darstellen.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Define a custom culture that uses "++" as a positive sign. 
      CultureInfo ci = new CultureInfo("");
      ci.NumberFormat.PositiveSign = "++";
      // Create an array of cultures.
      CultureInfo[] cultures = { ci, CultureInfo.InvariantCulture };
      // Create an array of strings to parse.
      string[] values = { "++1403", "-0", "+0", "+16034", 
                          Int16.MinValue.ToString(), "14.0", "18012" };
      // Parse the strings using each culture.
      foreach (CultureInfo culture in cultures)
      {
         Console.WriteLine("Parsing with the '{0}' culture.", culture.Name);
         foreach (string value in values)
         {
            try {
               ushort number = UInt16.Parse(value, culture);
               Console.WriteLine("   Converted '{0}' to {1}.", value, number);
            }
            catch (FormatException) {
               Console.WriteLine("   The format of '{0}' is invalid.", value);
            }
            catch (OverflowException) {
               Console.WriteLine("   '{0}' is outside the range of a UInt16 value.", value);
            }               
         }
      }
   }
}
// The example displays the following output:
//       Parsing with the  culture.
//          Converted '++1403' to 1403.
//          Converted '-0' to 0.
//          The format of '+0' is invalid.
//          The format of '+16034' is invalid.
//          '-32768' is outside the range of a UInt16 value.
//          The format of '14.0' is invalid.
//          Converted '18012' to 18012.
//       Parsing with the '' culture.
//          The format of '++1403' is invalid.
//          Converted '-0' to 0.
//          Converted '+0' to 0.
//          Converted '+16034' to 16034.
//          '-32768' is outside the range of a UInt16 value.
//          The format of '14.0' is invalid.
//          Converted '18012' to 18012.
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Define a custom culture that uses "++" as a positive sign. 
      Dim ci As CultureInfo = New CultureInfo("")
      ci.NumberFormat.PositiveSign = "++"
      ' Create an array of cultures.
      Dim cultures() As CultureInfo = { ci, CultureInfo.InvariantCulture }
      ' Create an array of strings to parse.
      Dim values() As String = { "++1403", "-0", "+0", "+16034", _
                                 Int16.MinValue.ToString(), "14.0", "18012" }
      ' Parse the strings using each culture.
      For Each culture As CultureInfo In cultures
         Console.WriteLine("Parsing with the '{0}' culture.", culture.Name)
         For Each value As String In values
            Try
               Dim number As UShort = UInt16.Parse(value, culture)
               Console.WriteLine("   Converted '{0}' to {1}.", value, number)
            Catch e As FormatException
               Console.WriteLine("   The format of '{0}' is invalid.", value)
            Catch e As OverflowException
               Console.WriteLine("   '{0}' is outside the range of a UInt16 value.", value)
            End Try               
         Next
      Next
   End Sub
End Module
' The example displays the following output:
'       Parsing with the  culture.
'          Converted '++1403' to 1403.
'          Converted '-0' to 0.
'          The format of '+0' is invalid.
'          The format of '+16034' is invalid.
'          '-32768' is outside the range of a UInt16 value.
'          The format of '14.0' is invalid.
'          Converted '18012' to 18012.
'       Parsing with the '' culture.
'          The format of '++1403' is invalid.
'          Converted '-0' to 0.
'          Converted '+0' to 0.
'          Converted '+16034' to 16034.
'          '-32768' is outside the range of a UInt16 value.
'          The format of '14.0' is invalid.
'          Converted '18012' to 18012.

Hinweise

Der s -Parameter enthält eine Nummer des Formulars:

[ws] [Signieren] digits[ws]

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

Element BESCHREIBUNG
ws Optionaler Leerraum.
Signieren Ein optionales Zeichen oder ein negatives Vorzeichen, wenn s den Wert 0 (null) darstellt.
Zahlen Eine Sequenz von Ziffern im Bereich von 0 bis 9.

Der s-Parameter wird mithilfe des NumberStyles.Integer Stils interpretiert. Zusätzlich zu den Dezimalstellen des Bytewerts sind nur führende und nachfolgende Leerzeichen zusammen mit einem führenden Vorzeichen zulässig. (Wenn das negative Vorzeichen vorhanden ist, s muss den Wert 0 (null) darstellen, oder die Methode löst eine OverflowException aus.) Verwenden Sie die -Methode, um die Stilelemente zusammen mit den kulturspezifischen Formatierungsinformationen, die in vorhanden sein können, explizit zu s Parse(String, NumberStyles, IFormatProvider) definieren.

Der provider -Parameter ist eine IFormatProvider Implementierung, deren GetFormat -Methode ein NumberFormatInfo -Objekt zurückgibt, das kulturspezifische Informationen zum Format von s bereitstellt. Es gibt drei Möglichkeiten, den provider -Parameter zum Bereitstellen von benutzerdefinierten Formatierungsinformationen für den Analysevorgang zu verwenden:

  • Sie können das eigentliche NumberFormatInfo Objekt übergeben, das Formatierungsinformationen bereitstellt. (Die Implementierung von GetFormat gibt sich einfach selbst zurück.)

  • Sie können ein CultureInfo -Objekt übergeben, das die Kultur angibt, deren Formatierung verwendet werden soll. Die NumberFormat -Eigenschaft stellt Formatierungsinformationen bereit.

  • Sie können eine benutzerdefinierte IFormatProvider Implementierung übergeben. Die GetFormat -Methode muss das -Objekt instanziieren und NumberFormatInfo zurückgeben, das Formatierungsinformationen bereitstellt.

Wenn provider null ist, NumberFormatInfo wird für die aktuelle Kultur verwendet.

Siehe auch

Gilt für