(0) exportieren 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

SByte.TryParse-Methode (String, NumberStyles, IFormatProvider, SByte)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und kulturspezifischen Format in das entsprechende SByte und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich abgeschlossen wurde.

Diese API ist nicht CLS-kompatibel. Die CLS-kompatible Alternative ist TryParse.

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

[CLSCompliantAttribute(false)]
public static bool TryParse(
	string s,
	NumberStyles style,
	IFormatProvider provider,
	out sbyte result
)

Parameter

s
Typ: System.String
Eine Zeichenfolge, die die zu konvertierende Zahl darstellt.
style
Typ: System.Globalization.NumberStyles
Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von s angibt. Ein häufig angegebener Wert ist Integer.
provider
Typ: System.IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen über s bereitstellt.
result
Typ: System.SByte
Diese Methode gibt bei erfolgreicher Konvertierung den 8-Bit-Ganzzahlwert mit Vorzeichen zurück, der der Zahl in s entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Bei der Konvertierung tritt ein Fehler auf, wenn der s-Parameter null oder String.Empty ist, nicht in einem mit style kompatiblen Format vorliegt oder eine Zahl kleiner als MinValue oder größer als MaxValue darstellt. Dieser Parameter wird nicht initialisiert übergeben.

Rückgabewert

Typ: System.Boolean
true , wenn s erfolgreich konvertiert wurde, andernfalls false.

AusnahmeBedingung
ArgumentException

style ist kein NumberStyles-Wert.

- oder -

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

Die TryParse(String, NumberStyles, IFormatProvider, SByte)-Methode entspricht der Parse(String, NumberStyles, IFormatProvider)-Methode, mit dem Unterschied, dass diese Methode bei einem Konvertierungsfehler keine Ausnahme auslöst. Aufgrund dieser Methode muss keine Ausnahmebehandlung ausgeführt werden, um einen Test auf eine FormatException auszuführen, wenn value ungültig ist und nicht erfolgreich analysiert werden kann.

Der style-Parameter definiert die Stilelemente (wie Leerraum oder ein positives bzw. negatives Vorzeichen), die im value-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 value-Parameter die folgenden Elemente enthalten:

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

Wenn der style-Parameter den AllowHexSpecifier umfasst, enthält der value-Parameter möglicherweise die folgenden Elemente:

[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 value stehen, wenn style das NumberStyles.AllowLeadingWhite-Flag enthält, oder am Ende von value, wenn style das NumberStyles.AllowTrailingWhite-Flag enthält.

$

Ein kulturspezifisches Währungssymbol. Seine Position in der Zeichenfolge wird von der CurrencyPositivePattern-Eigenschaft des NumberFormatInfo-Objekts definiert, das von der GetFormat-Methode des provider-Parameters zurückgegeben wird. Das Währungssymbol kann in value angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol-Flag enthält.

sign

Ein optionales Vorzeichen. Das Vorzeichen kann am Anfang von value stehen, wenn style das NumberStyles.AllowLeadingSign-Flag enthält. Das Vorzeichen kann auch am Ende von value enthalten sein, wenn style das NumberStyles.AllowTrailingSign-Flag enthält. Klammern können in value verwendet werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses-Flag enthält.

Ziffern

Eine Ziffernfolge von 0 bis einschließlich 9.

,

Ein kulturspezifisches Gruppentrennzeichen. Das Gruppentrennzeichen der von provider angegebenen Kultur kann in value angezeigt werden, wenn style das NumberStyles.AllowThousands-Flag enthält.

.

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

Bruchziffern

Ein oder mehrere Vorkommen der Ziffer 0. Bruchziffern können nur dann in value angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint-Flag enthält.

E

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

Exponenten-Ziffern

Eine Ziffernfolge von 0 bis einschließlich 9. Der value-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-Flag) wird immer erfolgreich analysiert. 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 value vorhanden sein können.

Nicht zusammengesetzte NumberStyles-Werte

Elemente, die neben Ziffern im Wert zulässig sind

None

Nur Dezimalstellen.

AllowDecimalPoint

Die Elemente Dezimaltrennzeichen (,) und Bruchziffern. Bruchziffern müssen jedoch mindestens eine 0-Stelle enthalten, andernfalls wird von der Methode false zurückgegeben.

AllowExponent

Das Zeichen "e" oder "E", das die Exponentialschreibweise angibt, zusammen mit Exponenten-Ziffern. Wenn value eine Zahl in Exponentialschreibweise darstellt, kann es keinen Wert ungleich 0 (null) als Nachkommastelle besitzen.

AllowLeadingWhite

Das LR-Element am Anfang von value

AllowTrailingWhite

Das LR-Element am Ende von value.

AllowLeadingSign

Das Zeichen-Element vor Ziffern

AllowTrailingSign

Das Zeichen-Element nach Ziffern

AllowParentheses

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

AllowThousands

Das Gruppentrennzeichenelement (,).

AllowCurrencySymbol

Das Währungselement ($).

Currency

Alle Elemente. value kann aber keine Hexadezimalzahlen oder Zahlen in Exponentialschreibweise darstellen.

Float

Das LR-Element am Anfang oder am Ende von value, Vorzeichen am Anfang von value und das Dezimaltrennzeichen (.). Für den value-Parameter kann auch die Exponentialschreibweise verwendet werden.

Number

Die Elemente LR, Vorzeichen, Gruppentrennzeichen (,) und Dezimaltrennzeichen (.)

Any

Alle Elemente. value kann jedoch keine Hexadezimalzahl darstellen.

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

HinweisHinweis

Wenn value die Zeichenfolgendarstellung einer Hexadezimalzahl ist, kann ihm keine Dekoration vorangestellt werden (z. B. 0x oder &h), die ihn als Hexadezimalzahl kennzeichnet. Dadurch tritt bei der Konvertierung ein Fehler auf.

Der provider-Parameter ist eine IFormatProvider-Implementierung. Die zugehörige GetFormat-Methode gibt ein NumberFormatInfo-Objekt zurück, das kulturspezifische Informationen über das Format von value bereitstellt. Bei dem provider-Parameter kann es sich um eines der folgenden Elemente handeln:

  • Ein CultureInfo-Objekt, das die Kultur darstellt, die Formatierungsinformationen bereitstellt. Die entsprechende GetFormat-Methode gibt das NumberFormatInfo-Objekt zurück, das numerische Formatierungsinformationen für diese Kultur bereitstellt.

  • Ein NumberFormatInfo-Objekt, das numerische Formatierungsinformationen bereitstellt. (Die Implementierung von GetFormat gibt sich lediglich selbst zurück.)

  • Ein benutzerdefiniertes Objekt, das IFormatProvider implementiert. Die entsprechende GetFormat-Methode instanziiert das NumberFormatInfo-Objekt, das numerische Formatierungsinformationen bereitstellt, und gibt es zurück.

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

Im folgenden Beispiel wird die TryParse(String, NumberStyles, IFormatProvider, SByte)-Methode mit einer Reihe verschiedener Zeichenfolgen- und NumberStyles-Werte aufgerufen.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;

      numericString = "106";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);

      numericString = "-106";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);

      numericString = "103.00";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "103.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "10E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles); 

      numericString = "12E-01";
      CallTryParse(numericString, styles);

      numericString = "12E01";
      CallTryParse(numericString, styles); 

      numericString = "C8";
      CallTryParse(numericString, NumberStyles.HexNumber);

      numericString = "0x8C";
      CallTryParse(numericString, NumberStyles.HexNumber);
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      sbyte number;
      bool result = SByte.TryParse(stringToConvert, styles, 
                                   CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number);
      else
         Console.WriteLine("Attempted conversion of '{0}' failed.", 
                           Convert.ToString(stringToConvert));
   }
}
// The example displays the following output:
//       Converted '106' to 106.
//       Attempted conversion of '-106' failed.
//       Converted '103.00' to 103.
//       Attempted conversion of '103.72' failed.
//       Converted '10E-01' to 1.
//       Attempted conversion of '12E-01' failed.
//       Converted '12E01' to 120.
//       Converted 'C8' to -56.
//       Attempted conversion of '0x8C' failed.


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.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:
© 2014 Microsoft