What is a delegate
a custom variable type that can be used in abstract classes Official documentation: Delegates
a variable that holds a reference to a value type and its content
a type that holds a reference to a method with a particular parameter list and return type
a specific value type that can be used only in callback methods