Завершение приложения.
От: ynblpb  
Дата: 10.11.04 16:09
Оценка: :)
Забавная ситуация имеется:

Создается С# проект в VS.NET 2003. Windows Application.
В нем присутствуют:
Форма, кнопка.

Обработчик кнопки такой: (Вариант 1)
private void button1_Click(object sender, System.EventArgs e)
{
    Application.Exit();
}

При нажатии на кнопу приложение нормально завершается.

Если в обработчике написать строку this.Close(); приложение тоже завершится.
Но вот в чем вопрос.

Если обработчик имеет вид: (Вариант 2)
private void button1_Click(object sender, System.EventArgs e)
{
    Application.Exit();
        MessageBox.Show("test");
}

Не закрывается форма. Если добавляем this.Close() первой строкой — форма закрывается,
но процесс в памяти живет.

Если обработчик имеет вид: (Вариант 3)
private void button1_Click(object sender, System.EventArgs e)
{
    this.Close();
        return;
        MessageBox.Show("test");
}

Форма закрывается и приложение тоже завершается.

При таком виде обработчика: (Вариант 4)
private void button1_Click(object sender, System.EventArgs e)
{
    Application.Exit();
        return;
        MessageBox.Show("test");
}

Все завершается тоже.
(Вариант 5)
private void button1_Click(object sender, System.EventArgs e)
{
        this.Close();
    Application.Exit();
        return;
        MessageBox.Show("test");
}

Такой вариант тоже работает.

Какой из последних трех вариантов более корректен? (подозреваю последний)
и почему при отсутствии return не происходит завершение программы. (Вариант 2)


12.11.04 12:56: Перенесено модератором из '.NET' — AndrewVK
можть и я вам когда-нибудь помогу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.