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

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

 

Veröffentlicht: Oktober 2016

clsCompliantAlternativeM:System.Int16.TryParse(System.String,System.Int16@)

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.

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

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

Parameter

s
Type: System.String

Eine Zeichenfolge, die die zu konvertierende Zahl darstellt.

style
Type: System.Globalization.NumberStyles

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

provider
Type: System.IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

result
Type: System.SByte

Diese Methode gibt bei erfolgreicher Konvertierung den Wert der ganzen 8-Bit-Zahl 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; in result ursprünglich übergebene Werte werden ausnahmslos überschrieben.

Rückgabewert

Type: System.Boolean

true, wenn s erfolgreich konvertiert wurde, andernfalls false.

Exception Condition
ArgumentException

style ist kein NumberStyles-Wert.

- oder -

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

Die TryParse(String, NumberStyles, IFormatProvider, SByte) Methode entspricht der Parse(String, NumberStyles, IFormatProvider) -Methode, mit der Ausnahme, dass die It keine Ausnahme auslöst, wenn die Konvertierung fehlschlägt. Diese Methode entfällt die Notwendigkeit, die Ausnahmebehandlung zum Testen verwenden eine FormatException Wenn value ist ungültig und kann nicht erfolgreich analysiert werden.

Die style Parameter definiert, die die Stilelemente (wie Leerraum oder ein positiven oder negativen Vorzeichen), die in zulässig sind die value Parameter, damit der Analysevorgang erfolgreich ausgeführt werden kann. Es muss eine Kombination von Bitflags aus der NumberStyles Enumeration. Abhängig vom Wert der style, der value -Parameter die folgenden Elemente enthalten:

[ws][$][sign][digits,]digits[.Bruchziffern] [E [Anmelden]Exponenten-Ziffern] [ws]

Wenn die style Parameter enthält AllowHexSpecifier, die value -Parameter die folgenden Elemente enthalten:

[ws]hexdigits[ws]

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

Element

Beschreibung

ws

Optionaler Leerraum. Leerraum kann am Anfang stehen value Wenn style enthält die NumberStyles.AllowLeadingWhite -Flag oder am Ende des value Wenn style enthält die NumberStyles.AllowTrailingWhite Flag.

$

Eine kulturspezifische Währungssymbol. Seine Position in der Zeichenfolge wird definiert, durch die CurrencyPositivePattern Eigenschaft der NumberFormatInfo zurückgegebenes Objekt die GetFormat Methode der provider Parameter. Das Währungssymbol kann angezeigt werden, value Wenn style enthält die NumberStyles.AllowCurrencySymbol Flag.

Vorzeichen

Ein optionalen Vorzeichen. Das Vorzeichen kann am Anfang stehen value Wenn style enthält die NumberStyles.AllowLeadingSign Flag stehen am Ende des value Wenn style enthält die NumberStyles.AllowTrailingSign Flag. Klammern können verwendet werden, value um einen negativen Wert anzugeben, ob style enthält die NumberStyles.AllowParentheses Flag.

Ziffern

Eine Folge von Ziffern von 0 bis 9.

,

Eine kulturspezifische Gruppentrennzeichen. Das Gruppentrennzeichen der angegebenen Kultur provider werden value Wenn style enthält die NumberStyles.AllowThousands Flag.

.

Eine kulturspezifische Dezimaltrennzeichen. Das Dezimaltrennzeichen der angegebenen Kultur provider werden value Wenn style enthält die NumberStyles.AllowDecimalPoint Flag.

Bruchziffern

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

E

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

Exponenten-Ziffern

Eine Folge von Ziffern von 0 bis 9. Die value 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 (Dies entspricht der NumberStyles.None Flag) immer erfolgreich analysiert. Die meisten der verbleibenden NumberStyles Member steuern Elemente, die möglicherweise vorhanden, sind jedoch nicht erforderlich, in dieser Eingabezeichenfolge vorhanden sein. In der folgenden Tabelle gibt an, wie einzelne NumberStyles Elemente auf die Elemente auswirken, die möglicherweise im value.

Nicht zusammengesetzte NumberStyles Werte

Elemente in den Wert neben Ziffern zulässig sind

None

Nur Dezimalstellen.

AllowDecimalPoint

Das Dezimaltrennzeichen (.) und Bruchziffern Elemente. Allerdings Bruchziffern muss bestehen aus nur einer oder mehreren 0-Ziffern oder der Rückgabe der Methode false.

AllowExponent

Das "e" oder das Zeichen "E", womit Exponentialschreibweise, zusammen mit Exponenten-Ziffern. Wenn value eine Zahl in Exponentialschreibweise, dürfen keine Bruchteile Komponente ungleich NULL sein.

AllowLeadingWhite

Die ws Element am Anfang der value.

AllowTrailingWhite

Die ws Element am Ende des value.

AllowLeadingSign

Die Anmelden Element vor Ziffern.

AllowTrailingSign

Die Anmelden Element nach Ziffern.

AllowParentheses

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

AllowThousands

Das Gruppentrennzeichen (,) Element.

AllowCurrencySymbol

Währung ($) Element.

Currency

Alle Elemente. Allerdings value keine hexadezimale Zahl oder einer Zahl in Exponentialschreibweise darstellen.

Float

Die ws Element am Anfang oder Ende des value, Anmelden am Anfang der value, und das Dezimaltrennzeichen (.) Symbol. Die value Parameter können auch Exponentialschreibweise.

Number

Die ws, Anmelden, Gruppentrennzeichen (,), und das Dezimaltrennzeichen (.) Elemente.

Any

Alle Elemente. Allerdings value eine hexadezimale Zahl nicht darstellen kann.

Wenn die NumberStyles.AllowHexSpecifier Flag verwendet wird, value muss ein Hexadezimalwert sein. Gültige Hexadezimalzeichen sind 0-9, a-f und A-F. Die einzigen anderen Flags, die in vorhanden sein können style sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles -Enumeration weist ein zusammengesetztes Format, HexNumber, beide Flags Leerzeichen enthält.)

System_CAPS_noteHinweis

Wenn value ist die Zeichenfolgendarstellung als hexadezimale Zahl, es kann nicht vorangestellt werden alle Decoration (z. B. 0x oder &h), die als Hexadezimalzahl unterscheidet. Dies bewirkt, dass die Konvertierung fehlschlägt.

Der provider -Parameter ist ein IFormatProvider Implementierung. Die GetFormat -Methode gibt ein NumberFormatInfo -Objekt, das kulturspezifische Informationen zum Format von bietet value. Die provider Parameter kann einer der folgenden sein:

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

  • Ein NumberFormatInfo -Objekt, das numerische Formatierungsinformationen bereitstellt. (Eine Implementierung von GetFormat nur sich selbst zurückgibt.)

  • Ein benutzerdefiniertes Objekt, das IFormatProvider. Die GetFormat -Methode instanziiert und gibt das NumberFormatInfo -Objekt, das Formatierungsinformationen bereitstellt.

Wenn provider ist null, die 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.

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.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 2.0
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: