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.Parse-Methode: (String, NumberStyles, IFormatProvider)

 

Veröffentlicht: Oktober 2016

clsCompliantAlternativeM:System.Int16.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturabhängigen Format in die entsprechende ganze 8-Bit-Zahl mit Vorzeichen.

Diese API ist nicht CLS-kompatibel.

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

[CLSCompliantAttribute(false)]
public static sbyte Parse(
	string s,
	NumberStyles style,
	IFormatProvider provider
)

Parameter

s
Type: System.String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält. Die Zeichenfolge wird unter Verwendung des durch style angegebenen Formats interpretiert.

style
Type: System.Globalization.NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angibt, die in s vorhanden sein können. Ein häufig angegebener Wert ist NumberStyles.Integer.

provider
Type: System.IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt. Wenn provider gleich null ist, wird die aktuelle Threadkultur verwendet.

Rückgabewert

Type: System.SByte

Eine ganze 8-Bit-Zahl mit Vorzeichen, die der im s-Parameter angegebenen Zahl entspricht.

Exception Condition
ArgumentException

style ist kein NumberStyles-Wert.

- oder -

style ist keine Kombination aus AllowHexSpecifier und HexNumber.

ArgumentNullException

s ist null.

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 -

s enthält Dezimalstellen ungleich 0 (null).

Die style Parameter definiert die Stilelemente (wie Leerraum oder das positive oder negative 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 style, der s -Parameter die folgenden Elemente enthalten:

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

Wenn style enthält AllowHexSpecifier, die s -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 s Wenn style enthält die NumberStyles.AllowLeadingWhite Flag stehen am Ende des s Wenn style enthält die NumberStyles.AllowTrailingWhite Flag.

$

Eine kulturspezifische Währungssymbol. Seine Position in der Zeichenfolge wird definiert, durch die NumberFormatInfo.CurrencyPositivePattern -Eigenschaft der aktuellen Kultur. Das Währungssymbol der aktuellen Kultur kann angezeigt werden, s Wenn style enthält die NumberStyles.AllowCurrencySymbol Flag.

Vorzeichen

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

Ziffern

Eine Folge von Ziffern von 0 bis 9.

.

Eine kulturspezifische Dezimaltrennzeichen. In der aktuellen Kultur Dezimaltrennzeichen angezeigt werden kann s Wenn style enthält die NumberStyles.AllowDecimalPoint Flag.

Bruchziffern

Mindestens ein Vorkommen der Ziffer 0-9 Wenn style enthält die NumberStyles.AllowExponent Flag oder ein oder mehrere Vorkommen der Ziffer 0, wenn dies nicht der Fall. Bruchziffern können angezeigt werden, s 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 s 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 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 (Dies entspricht der NumberStyles.None Stil) 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 s.

Nicht zusammengesetzte NumberStyles Werte

Elemente in zulässig s neben Ziffern

NumberStyles.None

Nur Dezimalstellen.

NumberStyles.AllowDecimalPoint

Das Dezimaltrennzeichen (.) und Bruchziffern Elemente. Jedoch enthält Stil keinen der NumberStyles.AllowExponent Flag Bruchziffern aus nur einer oder mehreren 0-Ziffern bestehen muss, andernfalls ein OverflowException ausgelöst.

NumberStyles.AllowExponent

Das "e" oder das Zeichen "E", womit Exponentialschreibweise, zusammen mit Exponenten-Ziffern.

NumberStyles.AllowLeadingWhite

Die ws Element am Anfang des s.

NumberStyles.AllowTrailingWhite

Die ws Element am Ende des s.

NumberStyles.AllowLeadingSign

Ein positiven Vorzeichen vor Ziffern.

NumberStyles.AllowTrailingSign

Ein positiven Vorzeichen nach Ziffern.

NumberStyles.AllowParentheses

Klammern vor und nach Ziffern auf einen negativen Wert anzugeben.

NumberStyles.AllowThousands

Das Gruppentrennzeichen (,) Element. Das Gruppentrennzeichen kann zwar in vorhanden s, es muss mindestens eine 0-Ziffern stehen.

NumberStyles.AllowCurrencySymbol

Währung ($) Element.

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

System_CAPS_noteHinweis

Wenn der s -Parameter ist die Zeichenfolgendarstellung einer Hexadezimalzahl, es kann keine vorangestellt werden alle Dekoration (z. B. 0x oder &h), die als Hexadezimalzahl unterscheidet. Dadurch wird den Analysevorgang eine Ausnahme ausgelöst.

Wenn s eine hexadezimale Zahl, die Parse(String, NumberStyles) -Methode interpretiert das höchstwertige Bit vom Byte als Vorzeichenbit.

Der provider -Parameter ist ein IFormatProvider Implementierung, deren GetFormat -Methode gibt ein NumberFormatInfo -Objekt, das kulturspezifische Informationen zum Format von bietet s. Es gibt drei Möglichkeiten zum Verwenden der provider Parameter für benutzerdefinierte Formatierungsinformationen für den Analysevorgang angeben:

  • Sie können den tatsächlichen übergeben NumberFormatInfo -Objekt, das Formatierungsinformationen bereitstellt. (Eine Implementierung von GetFormat einfach selbst zurückgibt.)

  • Sie können übergeben ein CultureInfo -Objekt, das die Kultur angibt, deren Formatierung verwendet werden. Die NumberFormat Eigenschaft Formatierungsinformationen bereitstellt.

  • Sie können eine benutzerdefinierte übergeben IFormatProvider Implementierung. Die GetFormat Methode muss instanziieren und Zurückgeben der NumberFormatInfo -Objekt, das Formatierungsinformationen bereitstellt.

Wenn provider ist null, die NumberFormatInfo -Objekt für die aktuelle Kultur verwendet.

Das folgende Beispiel veranschaulicht die Verwendung der Parse(String, NumberStyles, IFormatProvider) Methode, um verschiedene zeichenfolgendarstellungen Zahlen konvertieren ganzzahligen Werten mit Vorzeichen.

using System;
using System.Globalization;

public class SByteConversion
{
   NumberFormatInfo provider = NumberFormatInfo.CurrentInfo;

   public static void Main()
   {
      string stringValue;
      NumberStyles style;

      stringValue = "   123   ";
      style = NumberStyles.None;     
      CallParseOperation(stringValue, style);

      stringValue = "000,000,123";
      style = NumberStyles.Integer | NumberStyles.AllowThousands;
      CallParseOperation(stringValue, style);

      stringValue = "-100";
      style = NumberStyles.AllowLeadingSign;
      CallParseOperation(stringValue, style);

      stringValue = "100-";
      style = NumberStyles.AllowLeadingSign;
      CallParseOperation(stringValue, style);

      stringValue = "100-";
      style = NumberStyles.AllowTrailingSign;
      CallParseOperation(stringValue, style);

      stringValue = "$100";
      style = NumberStyles.AllowCurrencySymbol;
      CallParseOperation(stringValue, style);

      style = NumberStyles.Integer;
      CallParseOperation(stringValue, style);

      style = NumberStyles.AllowDecimalPoint;
      CallParseOperation("100.0", style);

      stringValue = "1e02";
      style = NumberStyles.AllowExponent;
      CallParseOperation(stringValue, style);

      stringValue = "(100)";
      style = NumberStyles.AllowParentheses;
      CallParseOperation(stringValue, style);
   }

   private static void CallParseOperation(string stringValue, 
                                          NumberStyles style)
   {                                          
      sbyte number;

      if (stringValue == null)
         Console.WriteLine("Cannot parse a null string...");

      try
      {
         number = sbyte.Parse(stringValue, style);
         Console.WriteLine("SByte.Parse('{0}', {1})) = {2}", 
                           stringValue, style, number);   
      }
      catch (FormatException)
      {
         Console.WriteLine("'{0}' and {1} throw a FormatException", 
                           stringValue, style);   
      }      
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is outside the range of a signed byte",
                           stringValue);
      }
   }
}
// The example displays the following information to the console:
//       '   123   ' and None throw a FormatException
//       SByte.Parse('000,000,123', Integer, AllowThousands)) = 123
//       SByte.Parse('-100', AllowLeadingSign)) = -100
//       '100-' and AllowLeadingSign throw a FormatException
//       SByte.Parse('100-', AllowTrailingSign)) = -100
//       SByte.Parse('$100', AllowCurrencySymbol)) = 100
//       '$100' and Integer throw a FormatException
//       SByte.Parse('100.0', AllowDecimalPoint)) = 100
//       SByte.Parse('1e02', AllowExponent)) = 100
//       SByte.Parse('(100)', AllowParentheses)) = -100

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: