UInt64.Parse Methode

Definition

Konvertiert die Zeichenfolgendarstellung einer Zahl in die 64-Bit-Ganzzahlenentsprechung ohne Vorzeichen.

Überlädt

Parse(String, NumberStyles, IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Format und kulturspezifischen Format in das 64-Bit-Äquivalent einer nicht signierten ganzzahligen Zahl.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Konvertiert die Spandarstellung einer Zahl in einer angegebenen Formatvorlage und einem kulturspezifischen Format in das 64-Bit-Äquivalent einer nicht signierten ganzzahligen Zahl.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Analysiert eine Spanne von UTF-8 Zeichen in einen Wert.

Parse(String, IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen kulturspezifischen Format in das 64-Bit-Äquivalent einer nicht signierten ganzzahligen Zahl.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Analysiert eine Spanne von Zeichen in einen Wert.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Analysiert eine Spanne von UTF-8 Zeichen in einen Wert.

Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Zahl in die 64-Bit-Ganzzahlenentsprechung ohne Vorzeichen.

Parse(String, NumberStyles)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Formatvorlage in die 64-Bit-Entsprechung einer nicht signierten ganzzahligen Zahl.

Parse(String, NumberStyles, IFormatProvider)

Quelle:
UInt64.cs
Quelle:
UInt64.cs
Quelle:
UInt64.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

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

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Format und kulturspezifischen Format in das 64-Bit-Äquivalent einer nicht signierten ganzzahligen Zahl.

public:
 static System::UInt64 Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
 static System::UInt64 Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::UInt64>::Parse;
[System.CLSCompliant(false)]
public static ulong Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static ulong Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
[System.CLSCompliant(false)]
public static ulong Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> uint64
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> uint64
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As ULong

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt. Die Zeichenfolge wird mithilfe der vom parameter style angegebenen Formatvorlage interpretiert.

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Formatvorlagenelemente angibt, die in svorhanden sein können. Ein typischer Wert, der angegeben werden soll, ist Integer.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu sbereitstellt.

Gibt zurück

Eine 64-Bit-ganzzahl ohne Vorzeichen, die der in sangegebenen Zahl entspricht.

Implementiert

Attribute

Ausnahmen

Der parameter s ist null.

style ist kein NumberStyles Wert.

-oder-

style ist keine Kombination aus AllowHexSpecifier und HexNumber Werten.

Der parameter s befindet sich nicht in einem Format, das mit stylekompatibel ist.

Der s-Parameter stellt eine Zahl kleiner als UInt64.MinValue oder größer als UInt64.MaxValuedar.

-oder-

s enthält Nicht-Null-Dezimalstellen.

Beispiele

Im folgenden Beispiel wird die Parse(String, NumberStyles, IFormatProvider)-Methode verwendet, um verschiedene Zeichenfolgendarstellungen von Zahlen in 64-Bit-ganzzahlige Werte 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 = { "170209", "+170209.0", "+170209,0", "-103214.00",
                                 "-103214,00", "104561.1", "104561,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,
                                    UInt64.Parse(value, style, ci));
               }
               catch (FormatException) {
                  Console.WriteLine("      Unable to parse '{0}'.", value);
               }      
               catch (OverflowException) {
                  Console.WriteLine("      '{0}' is out of range of the UInt64 type.",
                                    value);
               }
            }
         }
      }                                    
   }
}
// The example displays the following output:
//       Style: Integer
//          Converted '170209' to 170209.
//          Unable to parse '+170209.0'.
//          Unable to parse '+170209,0'.
//          Unable to parse '-103214.00'.
//          Unable to parse '-103214,00'.
//          Unable to parse '104561.1'.
//          Unable to parse '104561,1'.
//       Style: Integer, AllowDecimalPoint
//          Converted '170209' to 170209.
//          Converted '+170209.0' to 170209.
//          Unable to parse '+170209,0'.
//          '-103214.00' is out of range of the UInt64 type.
//          Unable to parse '-103214,00'.
//          '104561.1' is out of range of the UInt64 type.
//          Unable to parse '104561,1'.
//    Parsing strings using the French (France) culture
//       Style: Integer
//          Converted '170209' to 170209.
//          Unable to parse '+170209.0'.
//          Unable to parse '+170209,0'.
//          Unable to parse '-103214.00'.
//          Unable to parse '-103214,00'.
//          Unable to parse '104561.1'.
//          Unable to parse '104561,1'.
//       Style: Integer, AllowDecimalPoint
//          Converted '170209' to 170209.
//          Unable to parse '+170209.0'.
//          Converted '+170209,0' to 170209.
//          Unable to parse '-103214.00'.
//          '-103214,00' is out of range of the UInt64 type.
//          Unable to parse '104561.1'.
//          '104561,1' is out of range of the UInt64 type.
open System
open System.Globalization

let cultureNames = [| "en-US"; "fr-FR" |]
let styles = [| NumberStyles.Integer; NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint |]
let values = 
    [| "170209"; "+170209.0"; "+170209,0"; "-103214.00"
       "-103214,00"; "104561.1"; "104561,1" |]

// Parse strings using each culture
for cultureName in cultureNames do
    let ci = CultureInfo cultureName
    printfn $"Parsing strings using the {ci.DisplayName} culture"
    // Use each style.
    for style in styles do
        printfn $"   Style: {style}"
        // Parse each numeric string.
        for value in values do
            try
                printfn $"      Converted '{value}' to {UInt64.Parse(value, style, ci)}."
            with
            | :? FormatException ->
                printfn $"      Unable to parse '{value}'."
            | :? OverflowException ->
                printfn $"      '{value}' is out of range of the UInt64 type."
// The example displays the following output:
//       Style: Integer
//          Converted '170209' to 170209.
//          Unable to parse '+170209.0'.
//          Unable to parse '+170209,0'.
//          Unable to parse '-103214.00'.
//          Unable to parse '-103214,00'.
//          Unable to parse '104561.1'.
//          Unable to parse '104561,1'.
//       Style: Integer, AllowDecimalPoint
//          Converted '170209' to 170209.
//          Converted '+170209.0' to 170209.
//          Unable to parse '+170209,0'.
//          '-103214.00' is out of range of the UInt64 type.
//          Unable to parse '-103214,00'.
//          '104561.1' is out of range of the UInt64 type.
//          Unable to parse '104561,1'.
//    Parsing strings using the French (France) culture
//       Style: Integer
//          Converted '170209' to 170209.
//          Unable to parse '+170209.0'.
//          Unable to parse '+170209,0'.
//          Unable to parse '-103214.00'.
//          Unable to parse '-103214,00'.
//          Unable to parse '104561.1'.
//          Unable to parse '104561,1'.
//       Style: Integer, AllowDecimalPoint
//          Converted '170209' to 170209.
//          Unable to parse '+170209.0'.
//          Converted '+170209,0' to 170209.
//          Unable to parse '-103214.00'.
//          '-103214,00' is out of range of the UInt64 type.
//          Unable to parse '104561.1'.
//          '104561,1' is out of range of the UInt64 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 = { "170209", "+170209.0", "+170209,0", "-103214.00", _
                                 "-103214,00", "104561.1", "104561,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, _
                                    UInt64.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 UInt64 type.", _
                                    value)         
               End Try
            Next
         Next
      Next                                    
   End Sub
End Module
' The example displays the following output:
'       Style: Integer
'          Converted '170209' to 170209.
'          Unable to parse '+170209.0'.
'          Unable to parse '+170209,0'.
'          Unable to parse '-103214.00'.
'          Unable to parse '-103214,00'.
'          Unable to parse '104561.1'.
'          Unable to parse '104561,1'.
'       Style: Integer, AllowDecimalPoint
'          Converted '170209' to 170209.
'          Converted '+170209.0' to 170209.
'          Unable to parse '+170209,0'.
'          '-103214.00' is out of range of the UInt64 type.
'          Unable to parse '-103214,00'.
'          '104561.1' is out of range of the UInt64 type.
'          Unable to parse '104561,1'.
'    Parsing strings using the French (France) culture
'       Style: Integer
'          Converted '170209' to 170209.
'          Unable to parse '+170209.0'.
'          Unable to parse '+170209,0'.
'          Unable to parse '-103214.00'.
'          Unable to parse '-103214,00'.
'          Unable to parse '104561.1'.
'          Unable to parse '104561,1'.
'       Style: Integer, AllowDecimalPoint
'          Converted '170209' to 170209.
'          Unable to parse '+170209.0'.
'          Converted '+170209,0' to 170209.
'          Unable to parse '-103214.00'.
'          '-103214,00' is out of range of the UInt64 type.
'          Unable to parse '104561.1'.
'          '104561,1' is out of range of the UInt64 type.

Hinweise

Der parameter style definiert die Formatvorlagenelemente (z. B. Leerzeichen oder positives oder negatives Zeichensymbol), die im parameter s zulässig sind, damit der Analysevorgang erfolgreich ausgeführt werden kann. Es muss sich um eine Kombination aus Bitkennzeichnungen aus der NumberStyles Enumeration sein.

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

[ws] [$] [Zeichen]Ziffern[.fractional_digits][E[Zeichen]exponential_digits][ws]

Elemente in eckigen Klammern ([ und ]) sind optional. Wenn styleNumberStyles.AllowHexSpecifierenthält, kann der parameter s die folgenden Elemente enthalten:

[ws]hexdigits[ws]

In der folgenden Tabelle werden die einzelnen Elemente beschrieben.

Element Beschreibung
ws Optionaler Leerraum. Leerzeichen können am Anfang s angezeigt werden, wenn style das NumberStyles.AllowLeadingWhite Flag enthält, und es kann am Ende der s angezeigt werden, wenn style das NumberStyles.AllowTrailingWhite Flag enthält.
$ Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die CurrencyPositivePattern-Eigenschaft des NumberFormatInfo-Objekts definiert, das 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.
signieren Ein optionales Zeichen. (Die Methode löst eine OverflowException aus, wenn s ein negatives Vorzeichen enthält und eine Nicht-Null-Zahl darstellt.) Das Zeichen kann am Anfang s angezeigt werden, wenn style das NumberStyles.AllowLeadingSign Flag enthält, und es kann das Ende der s angezeigt werden, wenn style das NumberStyles.AllowTrailingSign Flag enthält. Klammern können in s verwendet werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses Flag enthält.
Ziffern Eine Sequenz von Ziffern von 0 bis 9.
. Ein kulturspezifisches Dezimalkommasymbol. Das Dezimalkommasymbol der aktuellen Kultur kann in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält.
fractional_digits Mindestens ein Vorkommen der Ziffer 0-9, wenn style die NumberStyles.AllowExponent-Kennzeichnung enthält, oder mindestens ein Vorkommen der Ziffer 0, wenn dies nicht der Fall ist. Dezimalstellen können nur in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält.
E Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Schreibweise dargestellt wird. Der s-Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag 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 NumberStyles.AllowExponent Flag enthält.
hexdigits Eine Abfolge von hexadezimalen Ziffern von 0 bis f oder 0 bis F.

Anmerkung

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

Eine Zeichenfolge mit Dezimalziffern (die der NumberStyles.None Formatvorlage entspricht) analysiert immer erfolgreich. Die meisten der verbleibenden NumberStyles Elemente steuern Elemente, die vorhanden sein können, aber nicht vorhanden sein müssen, in dieser Eingabezeichenfolge. In der folgenden Tabelle wird angegeben, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die in svorhanden sein können.

Nicht zusammengesetzte NumberStyles Werte Elemente, die zusätzlich zu Ziffern in s zulässig sind
NumberStyles.None Nur Dezimalziffern.
NumberStyles.AllowDecimalPoint Der Dezimalkomma (.) und fractional_digits Elemente. Wenn die Formatvorlage jedoch nicht die NumberStyles.AllowExponent-Kennzeichnung enthält, darf fractional_digits nur aus einer oder mehreren 0 Ziffern bestehen; andernfalls wird ein OverflowException ausgelöst.
NumberStyles.AllowExponent Das Zeichen "e" oder "E", das exponentielle Notation zusammen mit exponential_digitsangibt.
NumberStyles.AllowLeadingWhite Das ws-Element am Anfang s.
NumberStyles.AllowTrailingWhite Das ws-Element am Ende s.
NumberStyles.AllowLeadingSign Ein Zeichen vor Ziffern.
NumberStyles.AllowTrailingSign Ein Zeichen nach Ziffern.
NumberStyles.AllowParentheses Klammern vor und nach Ziffern, um einen negativen Wert anzugeben.
NumberStyles.AllowThousands Das Gruppentrennzeichen (,) -Element.
NumberStyles.AllowCurrencySymbol Das Währungselement ($)

Wenn das NumberStyles.AllowHexSpecifier-Flag verwendet wird, muss s ein Hexadezimalwert sein. Gültige Hexadezimalzeichen sind 0-9, A-F und a-f. Ein Präfix wie "0x" wird nicht unterstützt und bewirkt, dass der Analysevorgang fehlschlägt. Die einzigen anderen Flags, die mit ihr kombiniert werden können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles-Aufzählung enthält eine zusammengesetzte Zahlenformatvorlage, NumberStyles.HexNumber, die beide Leerzeichen enthält.)

Anmerkung

Wenn der parameter s die Zeichenfolgendarstellung einer Hexadezimalzahl ist, kann keine Dekoration (z. B. 0x oder &h) vorangestellt werden, die ihn als hexadezimale Zahl unterscheidet. Dies bewirkt, dass der Analysevorgang eine Ausnahme auslöst.

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

  • Sie können das tatsächliche NumberFormatInfo-Objekt übergeben, das Formatierungsinformationen bereitstellt. (Ihre Umsetzung 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 NumberFormatInfo-Objekt instanziieren und zurückgeben, das Formatierungsinformationen bereitstellt.

Wenn providernullist, wird das NumberFormatInfo Objekt für die aktuelle Kultur verwendet.

Weitere Informationen

Gilt für:

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Quelle:
UInt64.cs
Quelle:
UInt64.cs
Quelle:
UInt64.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Konvertiert die Spandarstellung einer Zahl in einer angegebenen Formatvorlage und einem kulturspezifischen Format in das 64-Bit-Äquivalent einer nicht signierten ganzzahligen Zahl.

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

Parameter

s
ReadOnlySpan<Char>

Eine Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen. Die Spanne wird mithilfe der vom parameter style angegebenen Formatvorlage interpretiert.

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Formatvorlagenelemente angibt, die in svorhanden sein können. Ein typischer Wert, der angegeben werden soll, ist Integer.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu sbereitstellt.

Gibt zurück

Eine 64-Bit-ganzzahl ohne Vorzeichen, die der in sangegebenen Zahl entspricht.

Implementiert

Attribute

Gilt für:

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Quelle:
UInt64.cs
Quelle:
UInt64.cs

Analysiert eine Spanne von UTF-8 Zeichen in einen Wert.

public static ulong Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> uint64
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As ULong

Parameter

utf8Text
ReadOnlySpan<Byte>

Die Spanne von UTF-8 Zeichen, die analysiert werden sollen.

style
NumberStyles

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

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Textbereitstellt.

Gibt zurück

Das Ergebnis der Analyse utf8Text.

Implementiert

Gilt für:

Parse(String, IFormatProvider)

Quelle:
UInt64.cs
Quelle:
UInt64.cs
Quelle:
UInt64.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

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

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen kulturspezifischen Format in das 64-Bit-Äquivalent einer nicht signierten ganzzahligen Zahl.

public:
 static System::UInt64 Parse(System::String ^ s, IFormatProvider ^ provider);
public:
 static System::UInt64 Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::UInt64>::Parse;
[System.CLSCompliant(false)]
public static ulong Parse (string s, IFormatProvider provider);
public static ulong Parse (string s, IFormatProvider? provider);
[System.CLSCompliant(false)]
public static ulong Parse (string s, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member Parse : string * IFormatProvider -> uint64
static member Parse : string * IFormatProvider -> uint64
Public Shared Function Parse (s As String, provider As IFormatProvider) As ULong

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu sbereitstellt.

Gibt zurück

Eine 64-Bit-ganzzahl ohne Vorzeichen, die der in sangegebenen Zahl entspricht.

Implementiert

Attribute

Ausnahmen

Der parameter s ist null.

Der parameter s ist nicht in der richtigen Formatvorlage enthalten.

Der s-Parameter stellt eine Zahl kleiner als UInt64.MinValue oder größer als UInt64.MaxValuedar.

Beispiele

Das folgende Beispiel ist der Button Click-Ereignishandler eines Webformulars. Es verwendet das von der HttpRequest.UserLanguages-Eigenschaft zurückgegebene Array, um das Gebietsschema des Benutzers zu bestimmen. Anschließend instanziiert es ein CultureInfo-Objekt, das diesem Gebietsschema entspricht. Das NumberFormatInfo-Objekt, das zu diesem CultureInfo-Objekt gehört, wird dann an die Parse(String, IFormatProvider)-Methode übergeben, um die Eingabe des Benutzers in einen UInt64 Wert zu konvertieren.

protected void OkToSingle_Click(object sender, EventArgs e)
{
    string locale;
    float number;
    CultureInfo culture;

    // Return if string is empty
    if (String.IsNullOrEmpty(this.inputNumber.Text))
        return;

    // Get locale of web request to determine possible format of number
    if (Request.UserLanguages.Length == 0)
        return;
    locale = Request.UserLanguages[0];
    if (String.IsNullOrEmpty(locale))
        return;

    // Instantiate CultureInfo object for the user's locale
    culture = new CultureInfo(locale);

    // Convert user input from a string to a number
    try
    {
        number = Single.Parse(this.inputNumber.Text, culture.NumberFormat);
    }
    catch (FormatException)
    {
        return;
    }
    catch (Exception)
    {
        return;
    }
    // Output number to label on web form
    this.outputNumber.Text = "Number is " + number.ToString();
}
Protected Sub OkToSingle_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToSingle.Click
   Dim locale As String
   Dim culture As CultureInfo
   Dim number As Single

   ' Return if string is empty
   If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub

   ' Get locale of web request to determine possible format of number
   If Request.UserLanguages.Length = 0 Then Exit Sub
   locale = Request.UserLanguages(0)
   If String.IsNullOrEmpty(locale) Then Exit Sub

   ' Instantiate CultureInfo object for the user's locale
   culture = New CultureInfo(locale)

   ' Convert user input from a string to a number
   Try
      number = Single.Parse(Me.inputNumber.Text, culture.NumberFormat)
   Catch ex As FormatException
      Exit Sub
   Catch ex As OverflowException
      Exit Sub
   End Try

   ' Output number to label on web form
   Me.outputNumber.Text = "Number is " & number.ToString()
End Sub

Hinweise

Diese Überladung der Parse(String, IFormatProvider)-Methode wird in der Regel verwendet, um Text zu konvertieren, der auf unterschiedliche Weise in einen UInt64 Wert formatiert werden kann. Beispielsweise kann er verwendet werden, um den von einem Benutzer eingegebenen Text in ein HTML-Textfeld in einen numerischen Wert zu konvertieren.

Der parameter s enthält eine Zahl des Formulars:

[ws] [Zeichen]Ziffern[ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle werden die einzelnen Elemente beschrieben.

Element Beschreibung
ws Optionaler Leerraum.
signieren Ein optionales positives Zeichen oder ein negatives Zeichen, wenn s den Wert Null darstellt.
Ziffern Eine Sequenz von Ziffern zwischen 0 und 9.

Der s-Parameter wird mithilfe der NumberStyles.Integer Formatvorlage interpretiert. Neben den dezimalen Dezimalstellen des nicht signierten Ganzzahlwerts sind nur führende und nachfolgende Leerzeichen zusammen mit einem vorangestellten Zeichen zulässig. (Wenn das negative Zeichen vorhanden ist, muss s einen Wert von Null darstellen, oder die Methode löst eine OverflowException.) Verwenden Sie zum expliziten Definieren der Formatelemente zusammen mit den kulturspezifischen Formatierungsinformationen, die in svorhanden sein können, die Parse(String, NumberStyles, IFormatProvider)-Methode.

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

  • Sie können das tatsächliche NumberFormatInfo-Objekt übergeben, das Formatierungsinformationen bereitstellt. (Ihre Umsetzung 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 NumberFormatInfo-Objekt instanziieren und zurückgeben, das Formatierungsinformationen bereitstellt.

Wenn providernullist, wird die NumberFormatInfo für die aktuelle Kultur verwendet.

Weitere Informationen

Gilt für:

Parse(ReadOnlySpan<Char>, IFormatProvider)

Quelle:
UInt64.cs
Quelle:
UInt64.cs
Quelle:
UInt64.cs

Analysiert eine Spanne von Zeichen in einen Wert.

public:
 static System::UInt64 Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::UInt64>::Parse;
public static ulong Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> uint64
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As ULong

Parameter

s
ReadOnlySpan<Char>

Die Spanne der zu analysierenden Zeichen.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu sbereitstellt.

Gibt zurück

Das Ergebnis der Analyse s.

Implementiert

Gilt für:

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Quelle:
UInt64.cs
Quelle:
UInt64.cs

Analysiert eine Spanne von UTF-8 Zeichen in einen Wert.

public:
 static System::UInt64 Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::UInt64>::Parse;
public static ulong Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> uint64
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As ULong

Parameter

utf8Text
ReadOnlySpan<Byte>

Die Spanne von UTF-8 Zeichen, die analysiert werden sollen.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Textbereitstellt.

Gibt zurück

Das Ergebnis der Analyse utf8Text.

Implementiert

Gilt für:

Parse(String)

Quelle:
UInt64.cs
Quelle:
UInt64.cs
Quelle:
UInt64.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

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

Konvertiert die Zeichenfolgendarstellung einer Zahl in die 64-Bit-Ganzzahlenentsprechung ohne Vorzeichen.

public:
 static System::UInt64 Parse(System::String ^ s);
[System.CLSCompliant(false)]
public static ulong Parse (string s);
public static ulong Parse (string s);
[<System.CLSCompliant(false)>]
static member Parse : string -> uint64
static member Parse : string -> uint64
Public Shared Function Parse (s As String) As ULong

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt.

Gibt zurück

Eine 64-Bit-Ganzzahl ohne Vorzeichen, die der in senthaltenen Zahl entspricht.

Attribute

Ausnahmen

Der parameter s ist null.

Der parameter s ist nicht im richtigen Format vorhanden.

Der s-Parameter stellt eine Zahl kleiner als UInt64.MinValue oder größer als UInt64.MaxValuedar.

Beispiele

Im folgenden Beispiel wird die Parse-Methode verwendet, um ein Array von Zeichenfolgenwerten zu analysieren.

string[] values = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                    "0xFA1B", "163042", "-10", "14065839182",
                    "16e07", "134985.0", "-12034" };
foreach (string value in values)
{
   try {
      ulong number = UInt64.Parse(value); 
      Console.WriteLine("{0} --> {1}", value, number);
   }
   catch (FormatException) {
      Console.WriteLine("{0}: Bad Format", value);
   }   
   catch (OverflowException) {
      Console.WriteLine("{0}: Overflow", value);   
   }  
}
// The example displays the following output:
//       +13230 --> 13230
//       -0 --> 0
//       1,390,146: Bad Format
//       $190,235,421,127: Bad Format
//       0xFA1B: Bad Format
//       163042 --> 163042
//       -10: Overflow
//       14065839182 --> 14065839182
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034: Overflow
let values = 
    [| "+13230"; "-0"; "1,390,146"; "$190,235,421,127"
       "0xFA1B"; "163042"; "-10"; "14065839182"
       "16e07"; "134985.0"; "-12034" |]
for value in values do
    try 
        let number = UInt64.Parse value 
        printfn $"{value} --> {number}"
    with
    | :? FormatException ->
        printfn $"{value}: Bad Format"
    | :? OverflowException ->
        printfn $"{value}: Overflow"
// The example displays the following output:
//       +13230 --> 13230
//       -0 --> 0
//       1,390,146: Bad Format
//       $190,235,421,127: Bad Format
//       0xFA1B: Bad Format
//       163042 --> 163042
//       -10: Overflow
//       14065839182 --> 14065839182
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034: Overflow
Dim values() As String = { "+13230", "-0", "1,390,146", "$190,235,421,127", _
                           "0xFA1B", "163042", "-10", "14065839182", _
                           "16e07", "134985.0", "-12034" }
For Each value As String In values
   Try
      Dim number As ULong = UInt64.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}: Overflow", value)   
   End Try  
Next
' The example displays the following output:
'       +13230 --> 13230
'       -0 --> 0
'       1,390,146: Bad Format
'       $190,235,421,127: Bad Format
'       0xFA1B: Bad Format
'       163042 --> 163042
'       -10: Overflow
'       14065839182 --> 14065839182
'       16e07: Bad Format
'       134985.0: Bad Format
'       -12034: Overflow

Hinweise

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

[ws] [Zeichen]Ziffern[ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle werden die einzelnen Elemente beschrieben.

Element Beschreibung
ws Optionaler Leerraum.
signieren Ein optionales Zeichen. Gültige Zeichenzeichen werden durch die eigenschaften NumberFormatInfo.NegativeSign und NumberFormatInfo.PositiveSign der aktuellen Kultur bestimmt. Das Negative Zeichensymbol kann jedoch nur mit Null verwendet werden. andernfalls löst die Methode eine OverflowExceptionaus.
Ziffern Eine Sequenz von Ziffern zwischen 0 und 9. Alle führenden Nullen werden ignoriert.

Anmerkung

Die durch den parameter s angegebene Zeichenfolge wird mithilfe der NumberStyles.Integer-Formatvorlage interpretiert. Sie darf keine Gruppentrennzeichen oder Dezimaltrennzeichen enthalten, und sie darf keinen Dezimalteil aufweisen.

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

Weitere Informationen

Gilt für:

Parse(String, NumberStyles)

Quelle:
UInt64.cs
Quelle:
UInt64.cs
Quelle:
UInt64.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

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

Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Formatvorlage in die 64-Bit-Entsprechung einer nicht signierten ganzzahligen Zahl.

public:
 static System::UInt64 Parse(System::String ^ s, System::Globalization::NumberStyles style);
[System.CLSCompliant(false)]
public static ulong Parse (string s, System.Globalization.NumberStyles style);
public static ulong Parse (string s, System.Globalization.NumberStyles style);
[<System.CLSCompliant(false)>]
static member Parse : string * System.Globalization.NumberStyles -> uint64
static member Parse : string * System.Globalization.NumberStyles -> uint64
Public Shared Function Parse (s As String, style As NumberStyles) As ULong

Parameter

s
String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt. Die Zeichenfolge wird mithilfe der vom parameter style angegebenen Formatvorlage interpretiert.

style
NumberStyles

Eine bitweise Kombination der Enumerationswerte, die das zulässige Format von sangibt. Ein typischer Wert, der angegeben werden soll, ist Integer.

Gibt zurück

Eine 64-Bit-ganzzahl ohne Vorzeichen, die der in sangegebenen Zahl entspricht.

Attribute

Ausnahmen

Der parameter s ist null.

style ist kein NumberStyles Wert.

-oder-

style ist keine Kombination aus AllowHexSpecifier und HexNumber Werten.

Der parameter s befindet sich nicht in einem Format, das mit stylekompatibel ist.

Der s-Parameter stellt eine Zahl kleiner als UInt64.MinValue oder größer als UInt64.MaxValuedar.

-oder-

s enthält Nicht-Null-Dezimalstellen.

Beispiele

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

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values= { " 214309 ", "1,064,181", "(0)", "10241+", " + 21499 ", 
                         " +21499 ", "122153.00", "1e03ff", "91300.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 {
               ulong number = UInt64.Parse(value, style);
               Console.WriteLine("   {0}: {1}", style, number);
            }   
            catch (FormatException) {
               Console.WriteLine("   {0}: Bad Format", style);
            }   
            catch (OverflowException)
            {
               Console.WriteLine("   {0}: Overflow", value);         
            }         
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    Attempting to convert ' 214309 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: 214309
//       Integer, AllowTrailingSign: 214309
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1,064,181':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: 1064181
//       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 '10241+':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 10241
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' + 21499 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' +21499 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 21499
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '122153.00':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 122153
//    
//    Attempting to convert '1e03ff':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '91300.0e-2':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 913
open System
open System.Globalization

let values =
    [| " 214309 "; "1,064,181"; "(0)"; "10241+"; " + 21499 " 
       " +21499 "; "122153.00"; "1e03ff"; "91300.0e-2" |]
let whitespace =  NumberStyles.AllowLeadingWhite ||| NumberStyles.AllowTrailingWhite
let 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.
for value in values do
    printfn $"Attempting to convert '{value}':"
    for style in styles do
        try
            let number = UInt64.Parse(value, style)
            printfn $"   {style}: {number}"
        with
        | :? FormatException ->
            printfn $"   {style}: Bad Format"
        | :? OverflowException ->
            printfn $"   {value}: Overflow"
    printfn ""
// The example displays the following output:
//    Attempting to convert ' 214309 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: 214309
//       Integer, AllowTrailingSign: 214309
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1,064,181':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: 1064181
//       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 '10241+':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 10241
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' + 21499 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' +21499 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 21499
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '122153.00':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 122153
//    
//    Attempting to convert '1e03ff':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '91300.0e-2':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 913
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim values() As String = { " 214309 ", "1,064,181", "(0)", "10241+", _
                                 " + 21499 ", " +21499 ", "122153.00", _
                                 "1e03ff", "91300.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 ULong = UInt64.Parse(value, style)
               Console.WriteLine("   {0}: {1}", style, number)
            Catch e As FormatException
               Console.WriteLine("   {0}: Bad Format", style)
            Catch e As OverflowException
               Console.WriteLine("   {0}: Overflow", value)         
            End Try         
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'    Attempting to convert ' 214309 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: 214309
'       Integer, AllowTrailingSign: 214309
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '1,064,181':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: 1064181
'       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 '10241+':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: 10241
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert ' + 21499 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert ' +21499 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: 21499
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '122153.00':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 122153
'    
'    Attempting to convert '1e03ff':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '91300.0e-2':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 913

Hinweise

Der style-Parameter definiert die Formatvorlagenelemente (z. B. Leerzeichen, positives oder negatives Zeichensymbol, Das Gruppentrennzeichen oder das Dezimalkommasymbol), die im s-Parameter zulässig sind, damit der Analysevorgang erfolgreich ausgeführt werden kann. style muss eine Kombination aus Bitkennzeichnungen aus der NumberStyles-Aufzählung sein. Der parameter style macht diese Methodenüberladung nützlich, wenn s die Zeichenfolgendarstellung eines Hexadezimalwerts enthält, wenn das durch s dargestellte Zahlensystem (Dezimal- oder Hexadezimalzahl) nur zur Laufzeit bekannt ist oder wenn Sie leerzeichen oder ein Zeichensymbol in snicht zulassen möchten.

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

[ws] [$] [Signieren] [Ziffern,]Ziffern[.fractional_digits][E[Zeichen]exponential_digits][ws]

Elemente in eckigen Klammern ([ und ]) sind optional. Wenn styleNumberStyles.AllowHexSpecifierenthält, kann der parameter s die folgenden Elemente enthalten:

[ws]hexdigits[ws]

In der folgenden Tabelle werden die einzelnen Elemente beschrieben.

Element Beschreibung
ws Optionaler Leerraum. Leerzeichen können am Anfang s angezeigt werden, wenn style das NumberStyles.AllowLeadingWhite Flag enthält, und es kann am Ende der s angezeigt werden, wenn style das NumberStyles.AllowTrailingWhite Flag enthält.
$ Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die eigenschaften NumberFormatInfo.CurrencyNegativePattern und NumberFormatInfo.CurrencyPositivePattern der aktuellen Kultur definiert. Das Währungssymbol der aktuellen Kultur kann in s angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Flag enthält.
signieren Ein optionales Zeichen. Das Zeichen kann am Anfang der s angezeigt werden, wenn style das NumberStyles.AllowLeadingSign Flag enthält, und es kann am Ende der s angezeigt werden, wenn style das NumberStyles.AllowTrailingSign Flag enthält. Klammern können in s verwendet werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses Flag enthält. Das Negative Zeichensymbol kann jedoch nur mit Null verwendet werden. andernfalls löst die Methode eine OverflowExceptionaus.
Ziffern

fractional_digits

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

Anmerkung

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

Eine Zeichenfolge mit Ziffern (die der NumberStyles.None Formatvorlage entspricht) analysiert immer erfolgreich, wenn sie sich im Bereich des UInt64 Typs befindet. Die meisten der verbleibenden NumberStyles Elemente steuern Elemente, die vorhanden sein können, aber nicht in der Eingabezeichenfolge vorhanden sein müssen. In der folgenden Tabelle wird angegeben, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die in svorhanden sein können.

wert NumberStyles Elemente, die zusätzlich zu Ziffern in s zulässig sind
None Nur die Ziffern Element.
AllowDecimalPoint Die Dezimalkomma (.) und Dezimalstellen Elemente.
AllowExponent Das Zeichen "e" oder "E", das exponentielle Notation zusammen mit exponential_digitsangibt.
AllowLeadingWhite Das ws-Element am Anfang s.
AllowTrailingWhite Das ws-Element am Ende s.
AllowLeadingSign Das signieren Element am Anfang s.
AllowTrailingSign Das signieren Element am Ende s.
AllowParentheses Das Zeichen Element in Form von Klammern, die den numerischen Wert einschließen.
AllowThousands Das Gruppentrennzeichen (,) -Element.
AllowCurrencySymbol Das Currency ($)-Element.
Currency Alle Elemente. s kann jedoch keine hexadezimale Zahl oder eine Zahl in exponentieller Schreibweise darstellen.
Float Das ws-Element am Anfang oder Ende der s, Zeichen am Anfang s, und das Dezimalkomma (.) Symbol. Der parameter s kann auch exponentielle Notation verwenden.
Number Die Elemente ws, sign, Gruppentrennzeichen (,) und Dezimalkomma (.)
Any Alle Elemente. s kann jedoch keine hexadezimale Zahl darstellen.

Im Gegensatz zu den anderen NumberStyles Werten, die das Vorhandensein bestimmter Formatvorlagenelemente in sermöglichen, bedeutet der NumberStyles.AllowHexSpecifier Formatvorlagenwert, dass die einzelnen numerischen Zeichen in s immer als Hexadezimalzeichen interpretiert werden. Gültige Hexadezimalzeichen sind 0-9, A-F und a-f. Ein Präfix wie "0x" wird nicht unterstützt und bewirkt, dass der Analysevorgang fehlschlägt. Die einzigen anderen Flags, die mit dem style-Parameter kombiniert werden können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles-Aufzählung enthält eine zusammengesetzte Zahlenformatvorlage, NumberStyles.HexNumber, die beide Leerzeichen enthält.)

Anmerkung

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

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

Weitere Informationen

Gilt für: