Встречается на собеседованиях • сегодня

Использовал ли управляемые ресурсы в C#

Да, использовал. В C# управляемые ресурсы автоматически освобождаются сборщиком мусора (GC), но для работы с неуправляемыми ресурсами (файлы, соединения и т.д.) реализуют интерфейс IDisposable.

Пример с using для автоматического вызова Dispose():

csharp
using (var fileStream = new FileStream("file.txt", FileMode.Open))
{
    // работа с файлом
}
// Dispose() вызывается автоматически

Для классов с неуправляемыми ресурсами:

csharp
public class ResourceHolder : IDisposable
{
    private bool _disposed = false;

    protected virtual void Dispose(bool disposing)
    {
        if (!_disposed)
        {
            if (disposing)
            {
                // освобождение управляемых ресурсов
            }
            // освобождение неуправляемых ресурсов
            _disposed = true;
        }
    }

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    ~ResourceHolder() => Dispose(false);
}

Также важно учитывать, что Dispose() можно вызывать вручную, если объект не используется в using.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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