AlgoMaster Logo

Generic Delegates

Last Updated: May 17, 2026

11 min read

A generic delegate is a delegate type whose signature is parameterized by one or more type parameters, the same way a generic class or method is. The .NET Base Class Library ships three families you'll use constantly, Func<...>, Action<...>, and Predicate<T>, and you can declare your own when a named type makes the call site clearer. This chapter looks at all of these through the generics lens: how the type parameters connect to the signature, how variance from the _Covariance & Contravariance_ lesson applies, and how to pass and return these delegates in generic code.

What a delegate fundamentally is, how lambdas desugar, and how multicast invocation lists work belong to the _Delegates & Events_ section. This chapter assumes you've read that section and focuses on the generic side of the story.

Premium Content

Subscribe to unlock full access to this content and more premium articles.