Methode beenden



  • Hallo,
    ich versuche eine Methode nach einer if-Abfrage sofort zu beenden, habe allerdings das Problem, dass die Code Ausführung nach der If-Abfrage fortgesetzt wird.

    ...
    if(test){
    MessageBox::Show("Ende");
    Application::Exit();
    }
    
    ...
    

    Gibt es eine bessere Anweisung als Application::Exit() oder this->Close() um eine Methode sofort zu verlassen?



  • return



  • return funktioniert komischerweise auch nicht.

    ref class Form1 : public Windows::Forms::Form{
    
    Form1(void){
    
      InitializeComponent();
      Start();
    }
    
    void Start(){
    if(test){
    MessageBox::Show("Stop");
    Application::Exit();
    //oder return oder this-Close()
    }
    

    Nachdem die MessageBox angezeigt wird, wird das Hauptfenster angezeigt.



  • Warum möchtest Du die Form schon im Konstruktor wieder schliessen?
    Simon



  • Ich lese eine Config aus. Wenn da nichts verwertbares drin steht muss die Anwendung wieder beendet werden.



  • Du bist da falsch!

    Erstelle und führe das Hauptfenster erst gar nicht aus, wenn die Bedingungen dafür nicht erfüllt sind.
    In Deinem Beispiel wurde aber Form1.h schon erzeugt und ausgeführt.
    Gehe in die Projektname.cpp...

    myproject.cpp

    #include "stdafx.h"
    #include "Form1.h"
    
    using namespace zhntgbrfv;
    
    int _zahl = 0;
    [STAThreadAttribute]
    int main(array<System::String ^> ^args)
    {
    	// Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden
    	Application::EnableVisualStyles();
    	Application::SetCompatibleTextRenderingDefault(false); 
    
    	if(_zahl == 1)
    	{
    		// Hauptfenster erstellen und ausführen
    		Application::Run(gcnew Form1());
    	}
    	return 0;
    }
    

Anmelden zum Antworten