Gewusst wie: Bestimmen, ob eine Zeichenfolge einen numerischen Wert darstellt (C#-Programmierhandbuch)

Aktualisiert: November 2007

Um zu bestimmen, ob eine Zeichenfolge eine gültige Darstellung eines angegebenen numerischen Typs ist, verwenden Sie die statische TryParse-Methode, die von allen primitiven numerischen Typen und von Typen, wie z. B. DateTime und IPAddress, implementiert werden. Im folgenden Beispiel wird gezeigt, wie Sie bestimmen können, ob "108" eine gültige int ist.

  int i = 0; 
  string s = "108";
  bool result = int.TryParse(s, out i); //i now = 108

Wenn die Zeichenfolge nicht-numerische Zeichen enthält oder der numerische Wert zu groß bzw. zu klein für den angegebenen Typ ist, gibt TryParse den Wert false zurück und legt den out-Parameter auf Null fest. Andernfalls wird true zurückgegeben, und der out-Parameter wird auf den numerischen Wert der Zeichenfolge festgelegt.

Hinweis:

Eine Zeichenfolge kann nur numerische Zeichen enthalten und dennoch nicht für den Typ, dessen TryParse-Methode Sie verwenden, gültig sein. "256" ist beispielsweise kein gültiger Wert für byte, aber es ist für int gültig. "98,6" ist kein gültiger Wert für int, ist jedoch für decimal gültig.

Beispiel

In den folgenden Beispielen wird gezeigt, wie Sie TryParse mit Zeichenfolgenentsprechungen von long, byte und decimal verwenden können.

string numString = "1287543"; //"1287543.0" will return false for a long
long number1 = 0;
bool canConvert = long.TryParse(numString, out number1);
if (canConvert == true)
  Console.WriteLine("number1 now = {0}", number1);
else
  Console.WriteLine("numString is not a valid long");

byte number2 = 0;
numString = "255"; // A value of 256 will return false
canConvert = byte.TryParse(numString, out number2);
if (canConvert == true)
  Console.WriteLine("number2 now = {0}", number2);
else
  Console.WriteLine("numString is not a valid byte");

decimal number3 = 0;
numString = "27.3"; //"27" is also a valid decimal
canConvert = decimal.TryParse(numString, out number3);
if (canConvert == true)
  Console.WriteLine("number3 now = {0}", number3);
else
  Console.WriteLine("number3 is not a valid decimal");            

Robuste Programmierung

Primitive numerische Typen implementieren auch die statische Parse-Methode, die eine Ausnahme auslöst, wenn die Zeichenfolge keine gültige Zahl ist. TryParse ist im Allgemeinen effektiver, da es nur den Wert false zurückgibt, wenn die Zahl nicht gültig ist.

Sicherheit

Verwenden Sie immer die TryParse- oder die Parse-Methode, um die Benutzereingaben in Steuerelementen wie Textfelder und Kombinationsfelder zu überprüfen.

Siehe auch

Aufgaben

Gewusst wie: Konvertieren eines Bytearrays in einen ganzzahligen Typ (C#-Programmierhandbuch)

Gewusst wie: Konvertieren einer Zeichenfolge in einen ganzzahligen Typ (C#-Programmierhandbuch)

Gewusst wie: Konvertieren zwischen Hexadezimalzeichenfolgen und numerischen Typen (C#-Programmierhandbuch)

Konzepte

Verarbeiten numerischer Zeichenfolgen

Weitere Ressourcen

Konvertieren von Typen

Formatierung von Typen