Что этот IDisposable делает для меня?

Я работаю над "учебной программой" и использую инструмент рефакторинга 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, или мне нужно сделать что-то в коде, чтобы это работало? Я поставил точку останова, но так и не дошел до нее через отладчик, так что либо она не нужна, либо я использую ее не так, как было задумано. Может ли кто-нибудь пролить свет на то, что это делает для меня или как я должен использовать это, чтобы оно действительно что-то делало для меня?

6
задан Buck Hicks 5 December 2011 в 22:05
поделиться