Can someone provide a good explanation (hopefully with examples) of these 3 most important delegates:
Predicate
: essentially Func<T, bool>
; asks the question "does the specified argument satisfy the condition represented by the delegate?" Used in things like List.FindAll.
Action
: Perform an action given the arguments. Very general purpose. Not used much in LINQ as it implies side-effects, basically.
Func
: Used extensively in LINQ, usually to transform the argument, e.g. by projecting a complex structure to one property.
Other important delegates:
EventHandler
/EventHandler<T>
: Used all over WinForms
Comparison<T>
: Like IComparer<T>
but in delegate form.