Gegen Internetzensur
Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:
  • Flickr Photos

    www.flickr.com
5. Dez
Die

Delikat: Predicate, Delegate – Anonyme Funktionen. Und wie?

Mal aus der Riege C#, die 2., weil ich vor ungefähr einer halben Stunde (Pausen ausgenommen) über das nicht sofort offensichtlich lösbare Problem stolperte, anonyme Methoden einzubinden. Oder anzuwenden.

Folgendes Szenario:

Eine generische Liste List soll von sämtlichen Elementen befreit werden, auf die ein bestimmtes Kriterium zutrifft. Dazu ist die Funktion RemoveAll() der Klasse List zuständig, deren Signatur wie folgt aussieht:

  1. public int RemoveAll ( Predicate match )

Dieses Predicate kann einem den letzten Nerv rauben. Um es kurz zu fassen, die Definition der anonymen Methode (bzw. Funktion) an dieser Stelle funktioniert nach folgendem Schema:

  1. delegate(T arg) {}

An einem Beispiel: Aus einer String-Liste sollen sämtliche leeren Strings entfernt werden.

  1. List list;
  2. // … die Liste wird gefüllt …
  3. list.RemoveAll( delegate( String str ) {
  4.         return String.IsNullOrEmpty(str);
  5.         } );

Wieder ein Problem weniger. 🙂


Warning: require(/www/htdocs/v026730/weblog/wp-content/themes/drexl/comments.php): failed to open stream: Permission denied in /www/htdocs/v026730/weblog/wp-includes/comment-template.php on line 1471

Fatal error: require(): Failed opening required '/www/htdocs/v026730/weblog/wp-content/themes/drexl/comments.php' (include_path='/www/htdocs/v026730/_pear/PEAR') in /www/htdocs/v026730/weblog/wp-includes/comment-template.php on line 1471