Если Dispose вызывается, когда Повторное выбрасывание необработанного исключения?

Обновить

April 2019

Просмотры

27 раз

0

Предположительно у меня есть класс, как ниже:

public class DisposableClass : IDisposable()
{
   private readonly Timer timer;

   DisposableClass()
   {
      this.timer = new Timer(s => cb(s), s, 1000, 1000);
   }

   Init()
   {
       try
       {
           // Do some initialization here that is not done in ctor.
       }
       catch (Exception)
       {
          // Log error.
          throw;
       }
       finally
       {
           // Is this correct?
           this.Dispose();
       }
   }

    public void Dispose()
    {
        this.timer?.Dispose();
    }
}

Мой вопрос , является ли finallyусловие необходимо (или не должно быть вообще) в приведенном выше случае, для любого метода не-конструктора при метании необработанного исключения. Благодарю.

РЕДАКТИРОВАТЬ:

В ответе, пожалуйста , обращайтесь вопросы в зависимости от Init()находящихся public, protected, privateуровней видимости.

0 ответы

Связанные вопросы