If,Else if simple frage

06/01/2011 11:26 Amphion#1
Moin,
Ich code gerade was in c# und habe eine
Combobox wenn man ein item von der combobox auswahlt und auf ein button klickt wird etwas in der tesxtbox ausgeben.
Ist ja nichts schweres hab es auch gemacht jedoch
hab ich da jetzt 20 Else if
Konnt ich das iwie verkurzern weil wenn die combox 100 items hat kann ich ja nicht 100 else machen.
06/01/2011 16:59 ZackBlack#2
Quote:
Originally Posted by Amphion View Post
Moin,
hab ich da jetzt 20 Else if
Konnt ich das iwie verkurzern
Hi, ich kenn mich nicht mit C# aus, aber da gibts doch sicher was wie switch oder? Sonst packst du das halt in ne Funktion dann ists auch schon etwas übersichtlicher.
06/01/2011 17:07 GotDamned#3
Wofür genau hast du denn die 20 else if?
Willst du den Text aus der Combobox in der Messagebox ausgeben?
Oder was genau willst du überhaupt machen?
06/01/2011 19:00 nkkk#4
benutz
[Only registered and activated users can see links. Click Here To Register...]

und am besten füllst du den die combobox mit den key-einträgen aus dem dicionary, nicht im designer.
06/02/2011 10:59 Amphion#5
Quote:
Originally Posted by GotDamned View Post
Wofür genau hast du denn die 20 else if?
Willst du den Text aus der Combobox in der Messagebox ausgeben?
Oder was genau willst du überhaupt machen?
Ich hab in der Combobox z.B ein item mit den Name "int"
Wenn man int auswahlt und auf button1 klickt wird ein bestimmter text
auf der textBox1 ausgeben: z.B

Code:
else if (comboBox1.SelectedIndex == 0)
            {

                textBox1.AppendText(string.Format("Min:{0}\r\nMax:{1}", int.MinValue, int.MaxValue));
            }
06/02/2011 11:37 Demon-777#6
Jo guck dir mal switch an.

Code:
            switch (this.comboBox1.SelectedIndex)
            {
                case 0:
                    // If we have index of 0 then:
                    this.textBox1.AppendText(
                        string.Format("Min:{0}\r\nMax:{1}", int.MinValue, int.MaxValue));
                    break;
                case 1:
                    // Do something here.
                    break;
                case 2:
                    // Do something here.
                    break;
                default:
                    // This is like the else clause of an if statement.
                    break;
            }
06/02/2011 11:41 Kraizy​#7
Naja, irgendwie musst du ja prüfen was in der ComboBox steht und darauf jeweils verschieden "reagieren". Finde dazu die [Only registered and activated users can see links. Click Here To Register...] übersichtlicher als If/Else.

Edit: zu spät...
06/02/2011 12:02 GotDamned#8
Du könntest auch Arrays verwenden
wobei die Feldnummer dann dem Index des ausgewählten Items entspricht.

spricht:
Messagebox.Show(index + "=" + array[index]);
Da würde quasi der Index ausgegeben und der dazu gehörige Wert/String im Feld.

So müsstest du keine Abfragen machen und halt nur sehen, wie du das Array füllst.
Wenn die Länge unendlich groß werden soll, dann benutz eine Liste.
Die wächst mit der Anzahl der Elemente automatisch mit