Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

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

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturabhängigen 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
Typ: System.String
Eine Zeichenfolge, die die zu konvertierende Zahl enthält.
style
Typ: 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
Typ: System.IFormatProvider
Eine IFormatProvider-Schnittstelle, die kulturabhängige Formatierungsinformationen über s bereitstellt.

Rückgabewert

Typ: System.Int64
Eine 64-Bit-Ganzzahl mit Vorzeichen, die der Zahl in s entspricht.

AusnahmeBedingung
ArgumentNullException

s ist null.

ArgumentException

style ist kein NumberStyles-Wert.

- oder -

style ist keine Kombination des AllowHexSpecifier-Werts und des HexNumber-Werts.

FormatException

Das Format von s ist nicht mit style kompatibel.

OverflowException

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

- oder -

style unterstützt Bruchziffern, s enthält jedoch Bruchziffern ungleich 0 (null).

Der style-Parameter definiert die Stilelemente (wie Leerraum oder das positive Vorzeichen), die im s-Parameter zulässig sind, damit der Analysevorgang ordnungsgemäß ausgeführt werden kann. Hierbei muss es sich um eine Kombination von Bitflags aus der NumberStyles-Enumeration handeln. Je nach dem Wert von style kann der s-Parameter die folgenden Elemente enthalten:

[LR][$][Vorzeichen][Ziffern.]Ziffern[,Bruchziffern][e[Vorzeichen]Exponenten-Ziffern][LR]

Oder wenn styleAllowHexSpecifier einschließt:

[LR]Hexadezimalziffern[LR]

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

Element

Beschreibung

LR

Optionaler Leerraum. Leerraum kann am Anfang von s stehen, wenn style das NumberStyles.AllowLeadingWhite-Flag enthält. Leeraum kann auch am Ende von s enthalten sein, wenn style das NumberStyles.AllowTrailingWhite-Flag enthält.

$

Ein kulturspezifisches Währungssymbol. Seine Position in der Zeichenfolge wird von der NumberFormatInfo.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.

sign

Ein optionales Vorzeichen. Das Vorzeichen kann am Anfang von s stehen, wenn style das NumberStyles.AllowLeadingSign-Flag enthält, oder am Ende von s, 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

Bruchziffern

Exponenten-Ziffern

Eine Ziffernfolge von 0 bis einschließlich 9.

,

Ein kulturspezifisches Tausendertrennzeichen. Das Tausendertrennzeichen der von provider angegebenen Kultur kann in s enthalten sein, wenn style das NumberStyles.AllowThousands-Flag enthält.

.

Ein kulturabhängiges Dezimaltrennzeichen. Das von provider angegebene Dezimalzeichensymbol der aktuellen Kultur kann in s enthalten sein, wenn style das NumberStyles.AllowDecimalPoint-Flag enthält.

Für einen erfolgreichen Analysevorgang darf nur die Ziffer 0 als Bruchziffer vorhanden sein. Wenn Bruchziffern eine andere Ziffer enthält, wird eine OverflowException ausgelöst.

e

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

Hexadezimalziffern

Eine hexadezimale Ziffernfolge von 0 (null) bis einschließlich f oder 0 (null) bis einschließlich F.

Eine Zeichenfolge, die ausschließlich Dezimalziffern enthält (dies entspricht dem NumberStyles.None-Stil), wird immer erfolgreich analysiert, wenn sie im Bereich des Int64-Typs enthalten ist. Die meisten der übrigen NumberStyles-Member steuern Elemente, die in dieser Eingabezeichenfolge nicht unbedingt vorhanden sein müssen. In der folgenden Tabelle wird angegeben, wie sich einzelne NumberStyles-Member auf die Elemente auswirken, die in s vorhanden sein können.

Nicht zusammengesetzte NumberStyles-Werte

Elemente, die neben Ziffern in s zulässig sind

NumberStyles.None

Nur Dezimalstellen.

NumberStyles.AllowDecimalPoint

Das Dezimaltrennzeichen (. )-Element und das Bruchziffern-Element. Bruchziffern muss jedoch ausschließlich aus einer oder mehreren 0-Stellen bestehen. Andernfalls wird eine OverflowException ausgelöst.

NumberStyles.AllowExponent

Für den s-Parameter kann auch die Exponentialschreibweise verwendet werden.

NumberStyles.AllowLeadingWhite

Das LR-Element am Anfang von s.

NumberStyles.AllowTrailingWhite

Das LR-Element am Ende von s.

NumberStyles.AllowLeadingSign

Vor Ziffern kann ein Vorzeichen angezeigt werden.

NumberStyles.AllowTrailingSign

Nach Ziffern kann ein Vorzeichen angezeigt werden.

NumberStyles.AllowParentheses

Das Vorzeichen-Element in Form von Klammern, die den numerischen Wert einschließen.

NumberStyles.AllowThousands

Das Tausendertrennzeichen-Element (.).

NumberStyles.AllowCurrencySymbol

Das $-Element.

Wenn das NumberStyles.AllowHexSpecifier-Flag verwendet wird, muss s ein Hexadezimalwert sein. Die einzigen anderen Flags, die in style enthalten sein können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles-Enumeration weist ein zusammengesetztes Zahlenformat (NumberStyles.HexNumber) auf, das beide Leerraumflags einschließt.)

Der provider-Parameter ist eine IFormatProvider-Implementierung, z. B. ein NumberFormatInfo-Objekt oder CultureInfo-Objekt. Der provider-Parameter stellt kulturspezifische Informationen für die Analyse bereit. Wenn providernull ist, wird die NumberFormatInfo für die aktuelle Kultur verwendet.

Im folgenden Beispiel wird eine Reihe von style-Parametern und provider-Parametern zum Analysieren von Zeichenfolgendarstellungen von Int64-Werten verwendet. Zudem werden einige der verschiedenen Interpretationsmöglichkeiten der Zeichenfolge entsprechend der Kultur veranschaulicht, deren Formatierungsinformationen für den Analysevorgang verwendet werden.


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.


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft