Inversion of Control (IoC)
Instead of you being in control of when a piece of code is executed, you hand the control to something else. The flow of control is now inverted. This is also known as the Hollywood principle: "Don't call us, we will call you." Inversion of Control moves secondary responsibilities from an object to other objects dedicated to that purpose, supporting the Single Responsibility Principle. (Martin 209)
Examples
LINQ
In LINQ, you supply the lambda expression, but LINQ controls when and how often it gets called.
Windows Forms
In Windows Forms, the framework declares events on controls. You bind a method to the event using a delegate. For example, the user is in control when the ui_CalculateButton_Click method is executed by clicking the ui_CalculateButton.
Unity Game Framework
In Unity, a game object must inherit from MonoBehaviour and implement specific methods (such as Update()) that the framework calls during the game loop.
IoC Containers
In dependency management, an object should not instantiate its own dependencies. Instead, this responsibility should be inverted and handled by an authoritative mechanism, such as an IoC container. IoC containers allow you to link interfaces to their implementations and resolve instances by automatically injecting dependencies. (Martin 2009; McLean Hall, Gary)
See Also: