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

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

 

Veröffentlicht: Oktober 2016

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

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

public static bool TryParse(
	string s,
	NumberStyles style,
	IFormatProvider provider,
	out short result
)

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 angeben, 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.

result
Type: System.Int16

Diese Methode gibt bei erfolgreicher Konvertierung den Wert der ganzen 16-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 Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) Methode unterscheidet sich von der Int16.Parse(String, NumberStyles, IFormatProvider) -Methode zurückgeben eines booleschen Werts, der angibt, ob der Analysevorgang erfolgreich war, anstelle des analysierten Int16 Wert. Es entfällt die Notwendigkeit Ausnahmebehandlung zum Testen verwenden eine FormatException die s ist ungültig und kann nicht erfolgreich analysiert werden kann.

Die style Parameter definiert, die die Stilelemente (wie Leerraum oder ein positiven oder negativen 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 Formatvorlage der s -Parameter die folgenden Elemente enthalten:

[ws] [$] [anmelden] [Ziffern,] Ziffern [.fractional_digits] [e [Vorzeichen] Ziffern] [ws]

Oder, wenn die style Parameter enthält NumberStyles.AllowHexSpecifier:

[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 oder 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 CurrencyPositivePattern Eigenschaft der NumberFormatInfo zurückgegebenes Objekt die GetFormat Methode der provider Parameter. Das Währungssymbol kann angezeigt werden, s Wenn style enthält die NumberStyles.AllowCurrencySymbol Flag.

Anmelden

Ein optionalen Vorzeichen.

Ziffern

Eine Folge von Ziffern von 0 bis 9.

,

Ein kulturspezifisches Tausendertrennzeichen Trennzeichen. Das Tausendertrennzeichen Trennzeichen der angegebenen Kultur provider werden s Wenn style enthält die NumberStyles.AllowThousands Flag.

.

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

Bruchziffern

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

e

Die Zeichen "e" oder "E", 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 (Dies entspricht der NumberStyles.None Flag) immer erfolgreich analysiert. 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 Elemente auf die Elemente auswirken, die möglicherweise im s.

Nicht zusammengesetzte NumberStyles-Werte

Elemente, die neben Ziffern in s zulässig

NumberStyles.None

Nur Dezimalstellen.

NumberStyles.AllowDecimalPoint

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

NumberStyles.AllowExponent

Die s Parameter können auch Exponentialschreibweise. Wenn s eine Zahl in Exponentialschreibweise darstellt, muss eine ganze Zahl innerhalb des Bereichs von darstellen der Int16 Datentyp ohne Bruchziffern ungleich NULL.

NumberStyles.AllowLeadingWhite

Die ws Element am Anfang des s.

NumberStyles.AllowTrailingWhite

Die ws Element am Ende des s.

NumberStyles.AllowLeadingSign

Eine Anmeldung kann angezeigt werden, bevor Ziffern.

NumberStyles.AllowTrailingSign

Eine Anmeldung kann angezeigt werden, nach dem Ziffern.

NumberStyles.AllowParentheses

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

NumberStyles.AllowThousands

Die , Element.

NumberStyles.AllowCurrencySymbol

Die $ Element.

NumberStyles.Currency

Alle Elemente. Die s Parameter keine hexadezimale Zahl oder einer Zahl in Exponentialschreibweise darstellen.

NumberStyles.Float

Die ws Element am Anfang oder am Ende des s, Anmelden am Anfang des s, und die . Symbol. Die s Parameter können auch Exponentialschreibweise.

NumberStyles.Number

Die ws, Anmelden, Tausende Trennzeichen (,), und das Dezimaltrennzeichen (.) Elemente.

NumberStyles.Any

Alle Stile, mit Ausnahme von s eine hexadezimale Zahl nicht darstellen kann.

Wenn die NumberStyles.AllowHexSpecifier Flag verwendet wird, s ein hexadezimaler Wert ohne Präfix werden muss. Z. B. "9AF3" erfolgreich analysiert, "0x9AF3" jedoch nicht. Die einzigen anderen Flags, die in vorhanden sein können style sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles -Enumeration weist ein zusammengesetztes Format, NumberStyles.HexNumber, beide Flags Leerzeichen enthält.)

Der provider -Parameter ist ein IFormatProvider Implementierung, wie z. B. ein CultureInfo Objekt oder ein NumberFormatInfo Objekt, dessen GetFormat -Methode gibt ein NumberFormatInfo Objekt. Das NumberFormatInfo Objekt stellt kulturspezifische Informationen zum Format von s. Wenn provider ist null, die NumberFormatInfo -Objekt für die aktuelle Kultur verwendet.

Im folgenden Beispiel wird die Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) -Methode mit einer Reihe verschiedener Zeichenfolgenwerte.

using System;
using System.Globalization;

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

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

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

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

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

      numericString = "22,593"; 
      styles = NumberStyles.Integer | NumberStyles.AllowThousands;
      CallTryParse(numericString, styles);

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

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

      numericString = "80c1";
      CallTryParse(numericString, NumberStyles.HexNumber);

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

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      short number;
      bool result = Int16.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 to the console:
//       Converted '10677' to 10677.
//       Attempted conversion of '-30677' failed.
//       Converted '10345.00' to 10345.
//       Attempted conversion of '10345.72' failed.
//       Converted '22,593' to 22593.
//       Attempted conversion of '12E-01' failed.
//       Converted '12E03' to 12000.
//       Converted '80c1' to -32575.
//       Attempted conversion of '0x80C1' 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: