DennisXX - Mo 22.08.11 11:13
Titel: Wie eine Liste verwalten?
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.
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;
public void setListItem(Button lstButton) {
this.lstButtonList.Add(lstButton);
}
public void getListItem(Button lstButton){
return lstButtonList.Find(lstButton);
}
public void removeListItem(Button lstButton) {
this.lstButtonList.Remove(lstButton);
} |
stes - 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:
C#-Quelltext
1: 2: 3: 4: 5:
| public Button GetListItem(string name) { return lstButtonList.Find((Button b) => { return b.Text == name; }); } |
Zu Lambda-Ausdrücken siehe auch:
http://msdn.microsoft.com/de-de/library/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