C# has the ability to create functions to fit a variety of scenarios, via delegates, events, and lambda functions. Join Joe Marini in this course for an exploration of these key elements, starting with delegates. As Joe explains, delegates allow developers to call functions in a way that allows for swapping while the program is running.