Встречается на 16% собеседований по C#

Что такое IoC

IoC (Inversion of Control) — принцип, при котором управление потоком выполнения программы передается внешнему фреймворку или контейнеру, а не контролируется самим приложением. В C# часто реализуется через DI (Dependency Injection).

Пример DI в C#:

csharp
public interface IService { void DoWork(); }

public class Service : IService
{
public void DoWork() => Console.WriteLine("Working...");
}

public class Client
{
private readonly IService _service;
public Client(IService service) => _service = service; // Внедрение зависимости
public void Execute() => _service.DoWork();
}

// Регистрация в DI-контейнере (например, в ASP.NET Core)
services.AddTransient<IService, Service>();
services.AddTransient<Client>();

text

**Ключевые моменты:**
- Уменьшает связанность компонентов
- Упрощает тестирование (можно подменять зависимости)
- Позволяет централизованно управлять жизненным циклом объектов

Основные реализации в .NET: встроенный DI-контейнер, Autofac, Ninject и др.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы