Sukram: C# Int32.Parse Rückgabewert

Hallo,

ich möchte einen String in Integer umwandeln. Es kann aber sein, dass der String auch Buchstaben enthält und dann funktioniert das natürlich nicht.

Also habe ich mir überlegt, dass mit einer IF-Abfrage herauszufinden.

  
if(Int32.Parse(string))  
{  
    Console.WriteLine("Erfolgreich");  
}  
else  
{  
    Console.WriteLine("Fehler");  
}  

Jetzt gibt die Parse()-Methode keinen boolschen Wert zurück.

Wie kann ich bewerkstelligen? Gibt es eine Methode, die vorher überprüft, ob der String nur aus Nummern besteht?

Gruß

Sukram

  1. Hello,

    Gibt es eine Methode, die vorher überprüft, ob der String nur aus Nummern besteht?

    anders herum - es gibt Int32.TryParse.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Konsens ist kein Beweis  --  John Naisbitt
    1. anders herum - es gibt Int32.TryParse.

      Hi,

      vielen Dank für Eure Antworten. Das TryParse() hatte ich gesucht. Ich wusste, dass ich das schon mal benutzt habe, bin aber nicht mehr auf die Methode gekommen.

      Hatte es zwischenzeitlich mit:

        
      try  
                          {  
                              int number = Int32.Parse(stringtoint);  
                          }  
                          catch (FormatException e)  
                          {  
                              Console.WriteLine("Fehler");  
                          }  
      
      

      gelöst.

      Gruß

      sukram

      1. Hallo sukram,

        Du solltest aus Performancegründen unbedingt die TryParse-Methode verwenden.

        Grüße

        1. Hallo sukram,

          Du solltest aus Performancegründen unbedingt die TryParse-Methode verwenden.

          Grüße

          Hallo Karsten,

          ich habe sie schon eingebaut :-)

          Gruß

          Sukram

  2. Hi!

    Jetzt gibt die Parse()-Methode keinen boolschen Wert zurück.

    Stimmt, wie die Dokumentation verrät, gibt sie den geparsten Integerwert zurück. Und was macht .NET wenn ihm was gegen den Strich geht im Allgemeinen und wie du mit einem fehlerhaften Wert selbst probieren kannst? Es wirft eine Exception. Die kann man abfangen und entsprechend reagieren.

    Wie kann ich bewerkstelligen? Gibt es eine Methode, die vorher überprüft, ob der String nur aus Nummern besteht?

    Du auch kannst das seit .NET 2.0 existierende int.TryParse() verwenden.

    Lo!