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

Verwenden Sie die statische TryParse-Methode, die von allen primitiven numerischen Typen sowie von Typen wie z.B. DateTime und IPAddress implementiert wird, um zu bestimmen, ob eine Zeichenfolge eine gültige Darstellung eines angegebenen numerischen Typs ist. In folgendem Beispiel wird gezeigt, wie Sie bestimmen können, ob „108“ eine zulässige ganze Zahl 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 für den Typ, den Sie angegeben haben, zu groß oder zu klein ist, gibt TryParse „FALSE“ zurück und legt den Parameter auf 0 (null) fest. Andernfalls wird „TRUE“ zurückgegeben und der Parameter auf den numerischen Wert der Zeichenfolge festgelegt.

Hinweis

Eine Zeichenfolge kann auch nur numerische Zeichen enthalten und trotzdem für den Typ unzulässig sein, dessen TryParse-Methode Sie verwenden. Beispielsweise ist „256“ kein zulässiger Wert für byte, aber zulässig für int. „98,6“ ist kein zulässiger Wert für int, aber zulässig für decimal.

Beispiel

In folgendem Beispiel wird gezeigt, wie Sie TryParse mit einer Zeichenfolgenrepräsentation von den Werten 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");            

Stabile Programmierung

Primitive numerische Typen implementieren auch die statische Parse-Methode, die eine Ausnahme auslöst, wenn die Zeichenfolge keine zulässige Zahl ist. TryParse ist für gewöhnlich effizienter, da es einfach „FALSE“ zurückgibt, wenn die Zahl unzulässig ist.

.NET Framework-Sicherheit

Verwenden Sie immer die Methoden TryParse oder Parse, um Benutzereingaben von Steuerelementen wie Text- oder Kombinationsfeldern zu überprüfen.

Siehe auch

Vorgehensweise Konvertieren eines Bytearrays in einen ganzzahligen Typ
Vorgehensweise: Konvertieren einer Zeichenfolge in eine Zahl
Vorgehensweise: Konvertieren zwischen Hexadezimalzeichenfolgen und numerischen Typen
Analysieren numerischer Zeichenfolgen
Formatierung von Typen