Чтобы развернуть ответ Робина:
IUserRepository _user = new UserRepository();
//you're in control of which instance is created.
С внедрением зависимости:
IUserRepository _user;// you will not do anything else.
Основываясь на конфигурации где-то еще, используемая вами структура внедрения зависимости позаботится о создании право экземпляр для вас.Это когда управление инвертировано из вашего кода.Вы не создаете напрямую какой-либо экземпляр из своего кода.
Почему !?Зачем ты это делаешь?
Одним из основных преимуществ является тестирование, когда вы запускаете тесты, вы можете настроить свой IUserRepository
на поддельный.