Встречается на собеседованиях • сегодня
Использовал ли неуправляемые ресурсы в C#
Да, использовал. В C# неуправляемые ресурсы (например, файловые потоки, соединения с БД, дескрипторы ОС) требуют явного освобождения. Для этого применяют:
IDisposableиusing– предпочтительный способ:
csharp
using (var file = new FileStream("test.txt", FileMode.Open))
{
// работа с файлом
} // автоматический вызов Dispose()- Реализация
IDisposableв своих классах:
csharp
public class ResourceHolder : IDisposable
{
private IntPtr handle; // пример неуправляемого ресурса
public void Dispose()
{
ReleaseUnmanagedResources();
GC.SuppressFinalize(this);
}
~ResourceHolder() => ReleaseUnmanagedResources();
private void ReleaseUnmanagedResources()
{
if (handle != IntPtr.Zero)
{
CloseHandle(handle); // вызов нативного метода
handle = IntPtr.Zero;
}
}
}Ключевое: всегда освобождать ресурсы явно, либо через using, либо вызывая Dispose(). Финализатор – резервный вариант на случай утечки.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы