Autor Beitrag
DennisXX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mo 22.08.11 11:13 
Guten Morgen zusammen

ich versuche gerade in einer Klasse eine Liste zu pflegen. Dazu habe ich bisher die Liste selbst definiert und die dazugehörigen Methoden. Ich bin mir nur bei der ersten Methode sicher, dass diese korrekt definiert ist, aber könntest ihr euch vielleicht mal die letzten zei Methoden ansehen? In der Liste sollen Objekte vpm Typ Button gepflegt werden.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
private List<Button> lstButtonList;


        //Setzen eines Elements für die Liste
        public void setListItem(Button lstButton)
        {

            this.lstButtonList.Add(lstButton);

        }


        //Auslesen eines Elements aus der Liste
        public void getListItem(Button lstButton){

            return lstButtonList.Find(lstButton);

        }


        //Entfernen eines Elements aus der Liste
        public void removeListItem(Button lstButton)
        {

            this.lstButtonList.Remove(lstButton);

        }
stes
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 36
Erhaltene Danke: 6

Win 95, Win XP, Win 7 64-bit
C# (VS 2010, #Develop), Java (eclipse)
BeitragVerfasst: Di 23.08.11 13:17 
Hi Dennis,

zu deinen Methoden:
Zunächst einmal: Bei als public gekennzeichneten Methoden schreibt man den Anfgangsbuchstaben normalerweise Groß.

Die erste ist in der Tat korrekt, würde ich aber AddListItem(...) nennen (Du "setzt" ja nichts, sondern fügst hinzu).
Bei der zweiten gibt es zwei Probleme: Zuerst mal musst du als Rückgabetyp Button angeben, sonst macht die Methode ja wohl
wenig Sinn oder?? Zur Find Methode: Du gibst dabei keinen konkreten Button als Parameter an, sondern musst ein Predicate<>-Delegate
übergeben, mit dem die Methode dann suchen kann. Wenn du z.B. einen Button mit einem bestimmten Text finden möchtest,
könntest du das folgendermaßen realisieren:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
        //Auslesen eines Elements aus der Liste
        public Button GetListItem(string name)
        {
            return lstButtonList.Find((Button b) => { return b.Text == name; });
        }


Zu Lambda-Ausdrücken siehe auch: msdn.microsoft.com/d...ibrary/bb397687.aspx
Anmerkung: Es ist irgendwie sowieso recht sinnlos, den Button wie in deinem Code als Parameter zu übergeben, nur um ihn anschließend wieder zurückgeben zu lassen ^^

Bei der letzten Methode müsste dann wieder alles funktionieren.

Gruß
stes

_________________
"Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann." Joseph Weizenbaum