Entwickler-Ecke

Basistechnologien - Leer lassen einer TextBox


Jan85 - Di 27.05.08 19:22
Titel: Leer lassen einer TextBox
Ich habe ein kleines "Programm" geschrieben das drei Zahlen, die einzugeben sind, addiert. (Bin noch anfänger)

Das war auch kein Problem. Wie jedoch geht es, dass ich auch nur zwei Zahlen eingeben kann und er diese dann addiert. (wenn ich jetzt nur zwei Zahlen eingebe kommt eine Fehlermeldung)

Hier mein Quellcode:


C#-Quelltext
1:
2:
3:
4:
5:
int Zahl1=int.Parse(textBox1.Text);
int Zahl2=int.Parse(textBox2.Text);
int Zahl3=int.Parse(textBox3.Text);
int Ergebnis=(Zahl1+Zahl2+Zahl3);
label1.Text=Ergebnis.ToString();


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


JüTho - Di 27.05.08 19:41

Solche Prüfungen sind oft nötig, das geht in der Regel so:

C#-Quelltext
1:
2:
3:
int zahl3 = 0;
if (!String.IsNullOrEmpty(textBox3.Text))
   Zahl3=int.Parse(textBox3.Text);

Das geht auch noch in einer Zeile:

C#-Quelltext
1:
2:
int Zahl3 = String.IsNullOrEmpty(textBox3.Text) 
    ? 0 : int.Parse(textBox3.Text);

Jürgen


Jan85 - Di 27.05.08 20:10

Vielen Dank für die schnelle Hilfe, jedoch klappt es bei mir immer noch nicht.
Fehlermeldung: string does not contain a definition for IsNullOrEmpty

Was habe ich falsch gemacht:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  
int Zahl1=int.Parse(textBox1.Text);
int Zahl2=int.Parse(textBox2.Text);
int Zahl3=0;
if ( !string.IsNullOrEmpty(textBox3.Text))
Zahl3=int.Parse(textBox3.Text);
          
int Ergebnis=(Zahl1+Zahl2+Zahl3);
label1.Text=Ergebnis.ToString();


Moderiert von user profile iconChristian S.: Cs-Tag repariert


Th69 - Mi 28.05.08 09:50

Wenn du noch nicht .NET 2 (oder höher) benutzt, dann mußt du selber so eine Methode schreiben:

C#-Quelltext
1:
2:
3:
4:
public static bool IsNullOrEmpty(string s)
{
  return s == null || s.Length == 0;
}

Besser wäre jedoch die Prüfung auf Ausnahmen (z.B. falls ein Buchstabe drin steht).
Ab .NET 2 gibt es dann auch die Methode TryParse, welche man einfach nachbauen kann (zumindestens als freie Methode).

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
public static int TryParse(string s)
{
  try
  {
     return int.Parse(s);
  }
  catch(Exception)
  {
    return 0;
  }
}