Autor Beitrag
Eagle92
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mo 18.07.11 08:09 
Hallo Liebe Entwickler Gemeinschaft,

Mein problem ist, das ich gern einen Befehl hätte womit ich in meiner ConsoleApplication das Programm Runterfahre sobald ein bestimmter Fall eintritt, ich definier das mal genauer.

Also:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
  if (VariableNode == null)
                {
                    Console.WriteLine("Keine Ausgaben Möglich");
                    Console.ReadLine();
                }


sobald ich zum Beispiel durch einen Verweis auf eine falsche XML-Datei das Element "VariableNode" nicht mehr vorfinden kann würd ich es gern so haben, das der Benutzer noch die Fehlermeldung sehen kann und danach das Programm dann erst runterfährt.

Danke im Vorraus !

Mit freundlichen Grüßen

Patrick
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 18.07.11 09:54 
Genau das macht doch dein Code? Die Fehlemeldung wird angezeigt und nach Tastendruck das Programm beendet.

_________________
>λ=
Eagle92 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mo 18.07.11 10:06 
Hallo Kha,

Leider nein.
Es wird doch gar kein Abbruch des Programms erzeugt. Lediglich einen Enterdruck ^^. Er geht in die schleife wenn er kein Element finden kann, gibt die Ausgabe und verlangt einen Enter Druck.
Allerdings habe ich dann noch in nach folgenden schritten ein paar Writelines und noch ein Readline. Das heißt ich Drücke enter und das Programm läuft weiter. Da ich das Programm so programmiert das bei einem richtigen Pfad was erscheinen soll (unter anderem vordefinierte Writelines), nicht direkt verschwindet ist am Ende auch nochmal ein Readline(). Somit bekomme ich dann bei einem falschen Pfad die vordefinierten Writelines die sich nicht auf die XML-Datei beziehen. Das wollte ich eigentlich vermeiden in dem ich einfach sage "Mach aus, nach Fehlangaben".
Verstehste wie ich das meine ?

Mit freundlichen grüßen

Patrick
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19322
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 18.07.11 10:11 
Naja, normal fortsetzen darfst du natürlich nur, wenn die Prüfung erfolgreich war, also hier im else...

Aus einer Schleife kommst du mit break heraus.

Für diesen Beitrag haben gedankt: Eagle92
Eagle92 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mo 18.07.11 10:18 
else...

hätte ich selber drauf kommen können. Danke =)
ujr
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 102
Erhaltene Danke: 12



BeitragVerfasst: Mo 18.07.11 10:57 
Hallo,

das Verlassen der main() Routine ist auch über "return" möglich. Außerdem ist in diesem Zusammenhang auch msdn.microsoft.com/e...682658(v=vs.85).aspx interessant.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 18.07.11 11:06 
Hallo ujr,

anstatt der WinAPI ExitProcess Funktion dann doch besser gleich die .NET-Methode aufrufen: Environment.Exit(exitCode)

P.S: Für WinForms würde man stattdessen aber Application.Exit() aufrufen.
ujr
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 102
Erhaltene Danke: 12



BeitragVerfasst: Mo 18.07.11 11:39 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
anstatt der WinAPI ExitProcess Funktion dann doch besser gleich die .NET-Methode aufrufen: [url=msdn.microsoft.com/d...Exit(exitCode)[/url]


Ja, natürlich - hatte den falschen Namen im Kopf und auf MSDN nicht richtig hingeschaut...