C# If "nummer" else "letter" abfrage

Alzurana

Grünschnabel
Hallo Leute!
Ich bin froh jetzt auch im Forum für Programmiersprachen zugange zu sein.
Also! Hier mein Problem:

Erstmal: Programmiersprache = C#

Ich muss eine string-variable in eine double-variable umwandeln.
Wenn jetzt aber in der string-variable Buchstaben stehen schmiert mir das Programm ab!
Ich muss also herrausfinden ob in der string-variable buchstaben stehen.
Wenn das der Fall ist soll ein Fehler angezeigt werden, wenn nicht soll die variable
umgewandelt werden.

So weit bin ich bis jetzt schon: (WindowsApplication)

//variabeln
string eingabe;
double zahl;

if (?) //falls buchstaben in der variable sind!
{
MessageBox.Show = "Bitte nur Zahlen (1 2 3 4 5 6 7 8 9 0) eingeben!";
}
//wenn nur Zahlen in der variable sind
else
{
zahl = Convert.ToDouble(eingabe);
}

Wie ihr seht brauche ich nur das, was hinter "if" in der Klammer steht.

Ich währe euch sehr verbunden, wenn ihr mir eine Lösung anbietet, welche
meinen code benutzt, da ich diese Abfrage in ein riesen Programm einbauen muss.
Falls das, was ich möchte, mit diesem code nicht realisierbar ist, bin ich auch für andere
Lösungsvorschläge offen. :)
 
Zuletzt bearbeitet:
Theoretich brauchst Du die erste Abfrage gar nicht, Du musst nur abfragen, ob Convert.ToDouble einen error zurück gibt
 
Habs grad nur in englisch gefunden:

C# provides three keywords try, catch and finally to do exception handling. The try encloses the statements that might throw an exception whereas catch handles an exception if one exists. The finally can be used for doing any clean up process.

The general form try-catch-finally in C# is shown below

try
{
// Statement which can cause an exception.
}
catch(Type x)
{
// Statements for handling the exception
}
finally
{
//Any cleanup code
}

If any exception occurs inside the try block, the control transfers to the appropriate catch block and later to the finally block.

Den ganzen Artikel gibts bei:
http://www.c-sharpcorner.com/Tutorials/ExceptionHandling101RVS.asp
 
Zuletzt bearbeitet:
Alternativ könntest du auch den String durchgehen und nach einem korrektem Ascii-Wert abfragen, also eine Schleife basteln und sobald ein "nicht korrekter" Wert gefunden wurde brichtst du ab und gibst false zurück.
 
Hi

Erstmal: falsches Forum. Im .NET-Forum wäre die Frage besser aufgehoben ;)
zu deinem Problem:
Nutz zur Eingabe einfach das Control NumericUpDown. Das gibt die den Wert als Decimal zurück und du brauchst dir um das konvertieren keine Sorgen zu machen.
Falls du jedoch den Weg weiter gehen willst:
Schau dir mal die Methode Double.TryParse (erst ab .NET 2.0) an.
 

Neue Beiträge

Zurück