Всякий раз, когда объект является одноразовым (он реализует интерфейс IDisposable), это означает, что он, вероятно, использует некоторые неуправляемые ресурсы, которыми не может управлять сборщик мусора, и, следовательно, если ваш объект собирается, эти ресурсы могут остаться в памяти, вызывая некоторые проблемы. Решение этой проблемы:
1.Для реализации интерфейса IDisposable в таких объектах и для очистки / закрытия неуправляемых ресурсов в методе Dispose (например, если вы используете одноразовый объект внутри объекта, было бы лучше иметь метод Dispose для вызова его распоряжаться внутри)
2. Для вызова метода Dispose для одноразовых объектов, когда они больше не нужны, но будьте осторожны, так как повторное использование удаленного объекта может вызвать некоторые исключения.
Упомянутый вами синтаксис использования - это короткий способ сделать то же самое, и он интерпретирует это:
using(var obj=new myDisposableObject)
{
obj.Something();
}
в следующее:
var obj=new myDisposableObject();
try
{
obj.Something();
}
catch
{
throw;
}
finally
{
obj.Dispose();
}
Таким образом, вы всегда можете быть уверены, что что бы ни случилось, метод Dispose вашего объекта всегда вызывается.