Я работаю над "учебной программой" и использую инструмент рефакторинга Code Rush для обучения. С последним обновлением Code Rush он рекомендует внедрять IDisposable в мои программы. Я знаю, что MSDN говорит об IDisposable, и у меня есть реальное базовое понимание того, что он делает, но поскольку я не знаю всех последствий его применения, я игнорировал эту рекомендацию. Сегодня я решил узнать об этом больше и выполнил рекомендацию.
Вот что это добавило в мою программу.
class Program : IDisposable
{
static Service _proxy;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
if (_proxy != null)
{
_proxy.Dispose();
_proxy = null;
}
}
~Program()
{
Dispose(false);
}
Итак, мои вопросы таковы. Делает ли это все, что мне нужно сделать, чтобы получить преимущество IDisposable, или мне нужно сделать что-то в коде, чтобы это работало? Я поставил точку останова, но так и не дошел до нее через отладчик, так что либо она не нужна, либо я использую ее не так, как было задумано. Может ли кто-нибудь пролить свет на то, что это делает для меня или как я должен использовать это, чтобы оно действительно что-то делало для меня?