Допустим, у меня есть форма SomeForm, которая наследуется от формы.
public class SomeForm : Form
{
private void SomeForm_FormClosed(object sender, FormClosedEventArgs e)
{
MessageBox.Show("FormClosed event in SomeForm class");
}
}
public class Consumer
{
SomeForm someForm = new SomeForm();
someForm = null; //Ideally the messagebox would display here
SomeForm someForm = new SomeForm();
someForm.Close(); //Messagebox would display in this case as well
}
Я хочу показать этот MessageBox всякий раз, когда форма закрыта. Должен ли я вставить это в событие FormClosed? Можно ли предположить, что событие FormClosed будет запускаться каждый раз, когда запускается что-то вроде деструктора? Есть ли лучшее место для размещения этого кода, который должен появляться при закрытии формы?
EDIT
Кто-то высказал хорошую мысль в комментариях ниже. Кажется, событие не срабатывает, когда для экземпляра класса установлено значение null. Однако будет ли вызываться деструктор или какой-либо другой метод, когда для экземпляра задано значение NULL. Я хочу гарантировать, что мой код запускается, когда пользователь заканчивает работу с классом.
Я также знаю, что принудительное выключение системы, завершение процесса, стихийные бедствия и т. Д. Не приведут к запуску моего кода, несмотря ни на что. =)