Laden...

Das uralte Thema: String auf Zahl prüfen

Erstellt von gelöschtem Konto vor 14 Jahren Letzter Beitrag vor 14 Jahren 947 Views
Gelöschter Account
vor 14 Jahren
Das uralte Thema: String auf Zahl prüfen

Hallo,

Wer hat nicht so eine Funktion:


int Convert(string Expression, int Faulty)
{
     try
     {
          return Convert.ToInt32(Expression);
     }
     catch
     { 
          return Faulty;
     }
}

Das gleiche Spiel auch mit Double etc.
Die Frage ist wie komm ich davon weg?
Gibt es einen sauberen Weg?
In komplexeren Algorithmen führt das auch zu einer
massiven Verlangsamung wenn die System.FormatException
sehr oft auftritt. Wie sehen eure Wege aus das effizent zu prüfen?

Viele Grüsse !

2.223 Beiträge seit 2005
vor 14 Jahren

Hallo Sebastian.Lange

ich habe soetwas nicht, denn ich benutze lieber


int tmp;
            if (!int.TryParse("sa", out tmp))
                tmp = 5;

Herzliche Grüße
Lars

Gelöschter Account
vor 14 Jahren

ach schau an!

ich habe parse bisher ohne out parameter genutzt da gabs immer eine exception
bei einem ungültigen string. und wieder was gelernt.

Danke!

E
31 Beiträge seit 2009
vor 14 Jahren

Hallo,

man sollte aus Performanceerwägungen immer die TryParse methode benutzen,
da die try ... catch Variante im catch Falle wesentlich langsamer ist.

Gruß
ehochipi

6.911 Beiträge seit 2009
vor 14 Jahren

Ergänzend: Try-catch sollte generell nicht zur Steuerung des Programmflusses verwendet werden, sondern wirklich nur wenn ein Fehler auftritt.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

Gelöschter Account
vor 14 Jahren

dito.