Func vs Action vs Predicate in C#: Differences, Uses, and Examples | CodeTrail