Primeros pasos con la inyección de dependencia

¿Cuál es un ejemplo básico de inyección de dependencia?

Aquí hay una clase (Perro) que crea su propia dependencia (Comida):

class Dog {
    public Dog() {
        var food = new Food();

        this.eat(food);
    }
}

Aquí está la misma clase que se inyecta con su dependencia mediante la inyección del constructor:

class Dog {
    public Dog(Food food) {
        this.eat(food);
    }
}