Oppure

Loading
10/01/11 12:07
DexterELEL
Ragazzi ho tante istruzioni if ma voglio che l'else sia solo 1 per tutti esempio

Se Faccio così se sbaglio nome mi devo leggere 4 message box io voglio che il message box sia solo 1

   if (textBox1.Text == "asd")
            {
               this.Hide();
            }
            else
            {
                MessageBox.Show("Nome non valido", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            if (textBox1.Text == "asd1")
            {
                this.Hide();
            }
            else
            {
                MessageBox.Show("Nome non valido", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            if (textBox1.Text == "asd2")
            {
                this.Hide();
            }
            else
            {
                MessageBox.Show("Nome non valido", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            if (textBox1.Text == "asd3")
            {
                this.Hide();
            }
            else
            {
                MessageBox.Show("Nome non valido", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            if (textBox1.Text == "asd4")
            {
                this.Hide();
            }
            else
            {
                MessageBox.Show("Nome non valido", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


Se lo metto così l'errore esce a tutti anche se i nomi sono corretti e dp esegue this.hide(); tranne per asd dove c'è l'else

   if (textBox1.Text == "asd")
            {
               this.Hide();
            }
            else
            {
                MessageBox.Show("Nome non valido", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            if (textBox1.Text == "asd1")
            {
                this.Hide();
            }
            if (textBox1.Text == "asd2")
            {
                this.Hide();
            }
            if (textBox1.Text == "asd3")
            {
                this.Hide();
            }
            if (textBox1.Text == "asd4")
            {
                this.Hide();
            }
            }

aaa
10/01/11 12:16
DexterELEL
Scusate il doppio post ho risolto lasciando aperte le else alla fine delle if e alla fine del programma le ho chiuse tutte...
aaa
10/01/11 13:38
Gianluca87
usa il costrutto "else if" e chiudi con "else"
aaa
10/01/11 15:36
Dyango
Postato originariamente da DexterELEL:

Scusate il doppio post ho risolto lasciando aperte le else alla fine delle if e alla fine del programma le ho chiuse tutte...

...oppure usa il select case
aaa
10/01/11 17:07
Il Totem
Non esiste il select case in C#, semmai esiste lo switch. Comunque anche lo switch è inutile per un compito così semplice. Basta usare un or per legare tutte le condizioni:
if (TextBox1.Text == "asd" || TextBox1.Text == "asd1" || ...)
   this.Hide();
else
   // ...

In alternativa:
String[] words = {"asd", "asd1", ... }

if (words.Contains(TextBox1.Text))
   this.Hide();
else
   // ...
aaa