Im letzten Posting habe ich die Möglichkeiten beschrieben einen Delegate als Paramter zu akzeptieren.
Auch dort haben wir bereits den weg über Predicate<T> verwendet:
1: ... Demo1.GetDemos(
2: delegate(Demo d)
3: {
4: return (d.Active && d.Name == "Test");
5: }
6: );
Oft ist man (wie im letzten Beispiel) nicht mehr gezwungen für alles einen eigenen Delegate zu erstellen. Hierfür kann man nun Func<T> (oder auch Action<T>, …) verwenden.
Aussehen kanns dann so:
1: Func<int, bool> f = (i) => i == 1;
2: var res = f(10);
Variable “f” beinhaltet nun unsere eigentliche Logik (Zuweisung über Lambda-Schreibweise). Dessen Aufruf ist dann denkbar einfach und natürlich können wir auch hier wieder Funktionen definieren die einen Parameter Func<T> nimmt.