Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Int64.Parse-Methode: (String, NumberStyles, IFormatProvider)

 

Veröffentlicht: Oktober 2016

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 64-Bit-Ganzzahl mit Vorzeichen.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static long Parse(
	string s,
	NumberStyles style,
	IFormatProvider provider
)

Parameter

s
Type: System.String

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

style
Type: System.Globalization.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
Type: System.IFormatProvider

Eine IFormatProvider-Schnittstelle, die kulturspezifische Formatierungsinformationen zu s bereitstellt.

Rückgabewert

Type: System.Int64

Eine 64-Bit-Ganzzahl mit Vorzeichen, die der Zahl in s entspricht.

Exception Condition
ArgumentNullException

s ist null.

ArgumentException

style ist kein NumberStyles-Wert.

- oder -

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

FormatException

s weist kein mit style kompatibles Format auf.

OverflowException

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

- oder -

style unterstützt Dezimalstellen, aber s enthält Dezimalstellen ungleich 0 (null).

Die style Parameter definiert die Style-Elemente (z. B. leer- oder das positiven Vorzeichen), die in zulässig sind die s Parameter, damit der Analysevorgang erfolgreich ausgeführt werden kann. Es muss eine Kombination von Bitflags aus der NumberStyles Enumeration. Abhängig vom Wert der styledie s -Parameter enthält möglicherweise die folgenden Elemente:

[ws] [$] [anmelden] [Ziffern] Ziffern [.fractional_digits] [-e [Anmeldung] Exponenten-Ziffern] [ws]

Oder, wenn der style enthält AllowHexSpecifier:

[ws] Hexdigits [ws]

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

Element

Beschreibung

ws

Optionaler Leerraum. Leerzeichen am Anfang stehen s Wenn style enthält die NumberStyles.AllowLeadingWhite Flag kann angezeigt werden, am Ende der s Wenn style enthält die NumberStyles.AllowTrailingWhite Flag.

$

Eine kulturspezifische Währungssymbol. Seine Position in der Zeichenfolge wird definiert, indem die NumberFormatInfo.CurrencyPositivePattern Eigenschaft von der NumberFormatInfo zurückgegebenes Objekt die GetFormat Methode der provider Parameter. Das Währungssymbol stehen s Wenn style enthält die NumberStyles.AllowCurrencySymbol Flag.

Vorzeichen

Einem optionalen Vorzeichen. Die Zeichen am Anfang stehen s Wenn style enthält die NumberStyles.AllowLeadingSign Flag oder am Ende der s Wenn style enthält die NumberStyles.AllowTrailingSign Flag. Klammern können verwendet werden, s zum Angeben eines negativen Werts Wenn style enthält die NumberStyles.AllowParentheses Flag.

Ziffern

Bruchziffern

Exponenten-Ziffern

Eine Folge von Ziffern zwischen 0 und 9.

,

Eine kulturspezifische Tausende Trennzeichen. Das Tausendertrennzeichen Trennzeichen, der vom angegebenen Kultur provider erscheinen s Wenn style enthält die NumberStyles.AllowThousands Flag.

.

Kulturspezifische Dezimalzeichen verwendet. Das Dezimaltrennzeichen des vom angegebenen Kultur provider erscheinen s Wenn style enthält die NumberStyles.AllowDecimalPoint Flag.

Nur die Ziffer 0 stehen als einer Dezimalstelle, damit der Analysevorgang erfolgreich ist; Wenn Bruchziffern enthält eine beliebige andere Ziffer ein OverflowException ausgelöst wird.

e

Die "e" oder "E"-Zeichen, das gibt an, dass der Wert in Exponentialschreibweise dargestellt wird. Die s Parameter kann eine Zahl in Exponentialschreibweise darstellen, wenn style enthält die NumberStyles.AllowExponent Flag.

hexdigits

Eine Sequenz von hexadezimalen Ziffern von 0 bis f oder 0 bis f.

Eine Zeichenfolge mit nur Dezimalstellen (entspricht der NumberStyles.None Stil) immer erfolgreich analysiert werden, wenn es im Bereich von ist das Int64 Typ. Die meisten der verbleibenden NumberStyles Member steuern Elemente, die nicht unbedingt in dieser Eingabezeichenfolge vorhanden sein. In der folgenden Tabelle gibt an, wie einzelne NumberStyles Mitglieder Auswirkungen auf die Elemente, die möglicherweise vorhandene in s.

Nicht zusammengesetzte NumberStyles-Werte

Elemente in s neben Ziffern zulässig

NumberStyles.None

Nur Dezimalstellen.

NumberStyles.AllowDecimalPoint

Das Dezimaltrennzeichen ( . ) und Dezimalstellen Elemente. Allerdings Dezimalstellen muss lediglich eine oder mehrere 0-Ziffern bestehen oder eine OverflowException ausgelöst wird.

NumberStyles.AllowExponent

Die s Parameter können auch Exponentialschreibweise.

NumberStyles.AllowLeadingWhite

Die ws Element am Anfang des s.

NumberStyles.AllowTrailingWhite

Die ws Element am Ende der s.

NumberStyles.AllowLeadingSign

Ein Vorzeichen können angezeigt werden, bevor Sie Ziffern.

NumberStyles.AllowTrailingSign

Eine Anmeldung kann angezeigt werden, nach dem Ziffern.

NumberStyles.AllowParentheses

Die Anmeldung Element in Form von Klammern, die den numerischen Wert einschließen.

NumberStyles.AllowThousands

Das Tausendertrennzeichen Trennzeichen ( , ) Element.

NumberStyles.AllowCurrencySymbol

Die $ Element.

Wenn die NumberStyles.AllowHexSpecifier -Flag wird verwendet, s Hexadezimalwert ohne Präfix werden muss. Z. B. "C9AF3" erfolgreich analysiert, "0xC9AF3" jedoch nicht. Die einzigen anderen Flags, die im vorhanden sein können style sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles -Enumeration hat ein zusammengesetztes Zahlenformat NumberStyles.HexNumber, beide Flags Leerzeichen enthält.)

Die provider Parameter ist ein IFormatProvider Implementierung, z. B. eine NumberFormatInfo oder CultureInfo Objekt. Die provider Parameter liefert kulturspezifische Informationen, die bei der Analyse verwendet. Wenn provider ist nulldie NumberFormatInfo für die aktuelle Kultur verwendet wird.

Im folgenden Beispiel wird eine Vielzahl von style und provider Parameter analysiert die zeichenfolgendarstellungen Int64 Werte. Darüber hinaus veranschaulicht einige der Möglichkeiten, die die gleiche Zeichenfolge abhängig von der Kultur interpretiert werden kann, deren Formatierungsinformationen für den Analysevorgang verwendet wird.

using System;
using System.Globalization;

public class ParseInt64
{
   public static void Main()
   {
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands, 
              new CultureInfo("en-GB"));
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("fr-FR"));
      Convert("12,000", NumberStyles.Float, new CultureInfo("en-US"));

      Convert("12 425,00", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("sv-SE"));
      Convert("12,425.00", NumberStyles.Float | NumberStyles.AllowThousands,
              NumberFormatInfo.InvariantInfo);
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint, 
              new CultureInfo("fr-FR"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("en-US"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowThousands,
              new CultureInfo("en-US"));
   }

   private static void Convert(string value, NumberStyles style, 
                               IFormatProvider provider)
   {
      try
      {
         long number = Int64.Parse(value, style, provider);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }   
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int64 type.", value);   
      }
   }                               
}
// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int64 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: