Как уже говорили все, вы используете this(…)
, который называется вызовом явного конструктора .
Однако имейте в виду, что в таком явном выражении вызова конструктора вы можете не ссылаться на
this
или super
. Как указано в JLS (§8.8.7.1).
Для выхода из приложения вы можете вызвать
System.Windows.Application.Current.Shutdown();
Как описано в документации к методу Application.Shutdown
, вы также можете изменить поведение вашего приложения при завершении работы, указав ShutdownMode ]:
Завершение работы неявно вызывается Windows Presentation Foundation (WPF) в следующих ситуациях:
- Когда ShutdownMode имеет значение OnLastWindowClose.
- Когда ShutdownMode установлен на OnMainWindowClose.
- Когда пользователь завершает сеанс, и событие SessionEnding либо не обрабатывается, либо обрабатывается без отмены.
Также обратите внимание, что Application.Current.Shutdown ();
может быть вызван только из потока, который создал объект Application
, то есть обычно из основного потока.
Это должно помочь:
Application.Current.Shutdown();
Если вам интересно, вот некоторые дополнительные материалы, которые я считаю полезными:
Насколько я понимаю, Application.Current.Shutdown ()
также имеет свой недостаток.
Если вы хотите показать окно подтверждения, позволяющее пользователям подтверждать выход или нет, Application.Current.Shutdown ()
необратимо.
Не должно быть сообщения Application.ShutDown ();
или .Exit ()
.
Приложение
- статический класс. Это не относится к текущему приложению.
Вам нужно перейти к текущему приложению, а затем закрыть его следующим образом:
Application.Current.Shutdown();