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

 

Veröffentlicht: Juli 2016

Die neueste Dokumentation zu Visual Studio 2017 RC finden Sie unter Visual Studio 2017 RC Documentation (Dokumentation zu Visual Studio 2017 RC).

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.

System_CAPS_ICON_note.jpg 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.

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");            

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.

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

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

Anzeigen: