Jakie polecenie w C # służy do zamykania aplikacji konsoli?
c#
console-application
exit
Sababoni
źródło
źródło
Environment.Exit
wymaga posiadania SecurityPermissionFlag.UnmanagedCode uprawnień - co może być uciążliwe dla niektórych.Kilka opcji, według najbardziej odpowiedniego sposobu:
System.Environment.Exit
( nie przenośne! Patrz poniżej )Edytowano 9/2013 w celu poprawy czytelności
Zwracanie z określonym kodem wyjścia: Jak Servy wskazuje w komentarzach, możesz zadeklarować opcję Main za pomocą
int
typu zwracanego i w ten sposób zwrócić kod błędu. Tak więc naprawdę nie ma potrzeby używania Environment.Exit, chyba że musisz zakończyć kodem wyjścia i nie możesz tego zrobić w metodzie Main. Najprawdopodobniej możesz tego uniknąć, zgłaszając wyjątek i zwracając kod błędu w Main, jeśli propaguje się tam nieobsługiwany wyjątek. Jeśli aplikacja jest wielowątkowa, prawdopodobnie będziesz potrzebować jeszcze więcej boksów, aby poprawnie zakończyć kodem wyjścia, więc lepiej jest po prostu wywołać Environment.Exit.Kolejnym argumentem przeciwko używaniu
Evironment.Exit
- nawet podczas pisania aplikacji wielowątkowych - jest możliwość ponownego użycia . Jeśli kiedykolwiek zechcesz ponownie użyć kodu w środowisku, które czyni goEnvironment.Exit
nieistotnym (takim jak biblioteka, która może być używana na serwerze WWW), kod nie będzie przenośny. Moim zdaniem najlepszym rozwiązaniem jest zawsze stosowanie wyjątków i / lub zwracanie wartości, które wskazują, że metoda osiągnęła pewien stan błędu / zakończenia. W ten sposób zawsze możesz używać tego samego kodu w dowolnym środowisku .NET i w dowolnym typie aplikacji. Jeśli piszesz konkretnie aplikację, która musi zwrócić kod wyjścia lub zakończyć działanie w sposób podobny do tegoEnvironment.Exit
, co robi, możesz następnie owinąć wątek na najwyższym poziomie i w razie potrzeby obsłużyć błędy / wyjątki.źródło
Aplikacje konsoli zostaną zamknięte, gdy główna funkcja zakończy działanie. Osiągnie to „powrót”.
Jeśli zwracasz kod błędu, możesz to zrobić w ten sposób, który jest dostępny z funkcji spoza początkowego wątku:
źródło
Możesz użyć
Environment.Exit(0)
iApplication.Exit
.Environment.Exit()
: kończy ten proces i nadaje bazowemu systemowi operacyjnemu określony kod wyjścia.źródło