Laden...

Prozedur/Funktion vorzeitig beenden?!

Erstellt von ZeroQool vor 17 Jahren Letzter Beitrag vor 17 Jahren 8.713 Views
Z
ZeroQool Themenstarter:in
322 Beiträge seit 2006
vor 17 Jahren
Prozedur/Funktion vorzeitig beenden?!

Hallo, wie kann ich eine Prozedur/Funktion vorzeitig beenden?! mit BREAK geht es leider nicht. Bsp.


    private bool CheckComboBoxen()
    {
      if (CmB_Artikelzustand.SelectedIndex == 0)
      {
        CmB_Artikelzustand.Focus();
        MessageBox.Show("Bitte geben Sie den Artikelzustand an!");
        return false;
        break;
      }
      
      if (CmB_Besucherzaehler.SelectedIndex == 0)
      {
        CmB_Besucherzaehler.Focus();
        MessageBox.Show("Bitte geben Sie den Besucherzähler an!");
        return false;
        break;
      }

      return true;
    }

Fehlermeldung:

Fehler 22 Keine einschließende Schleife, aus der angehalten und fortgefahren werden kann.

Bei Delphi ging das mit dem Befehle EXIT, gibt es aber offentsichtlich nicht bei C#, aber bestimmt etwas anderes. Über die Suche habe ich nichts gefunden. thx im voraus.

173 Beiträge seit 2006
vor 17 Jahren

Hallo ZeroQool,
mit return bis du schon richtig!

Will heißen zu deinem break kommst du gar nicht.
Du solltest auch vom Compiler eine Warnung bekommen, das du unerreichten Code drin hast!

Gruß
Bonvie

5.941 Beiträge seit 2005
vor 17 Jahren

Hallo

Du verlässt den Kontext doch schon mit return false,
daher kommt IMO der Fehler.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

139 Beiträge seit 2006
vor 17 Jahren

return beendet deine Methode,
break würde eine for oder while Schleife beenden!

Aber wofür soll das gut sein? – Advanced Computing Systems Division von IBM, 1968, zum Microchip

M
1.439 Beiträge seit 2005
vor 17 Jahren

@Peter Bucher
Mit break kannst du keine Methode beenden.

The break statement terminates the closest enclosing loop or switch statement in which it appears. Control is passed to the statement that follows the terminated statement, if any.

Z
ZeroQool Themenstarter:in
322 Beiträge seit 2006
vor 17 Jahren

THX an alle. liegt am RETURN =)

5.941 Beiträge seit 2005
vor 17 Jahren

Original von marsgk
@Peter Bucher
Mit break kannst du keine Methode beenden.

Jap, habe es selber bemerkt das ich Mist geschrieben habe.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

225 Beiträge seit 2006
vor 17 Jahren

Hi,

THX an alle. liegt am RETURN

Nein. Andersrum. Es liegt am break.
Du solltest das break und nicht das retunr entfernen (wenn ich dich richtig verstanden haben wolltest/hast Du das return entfernt).

Aber ein return ist hier schon sinnvoll, da ich davon ausgehe, dass Du die Methode auch wirklich verlassen willst und nicht erst noch (gegebenenfalls) die zweite if-Bedingunge überprüfen willst.

Yunky: was fürn operator muss ich den nehmen wenn ich sagen will nichtgrößergleich??
Yunky: !>3??
Yunky: !≥ ??
Puppetmaster: G
Yunky: aja ka
Puppetmaster: kleiner (<)
Yunky: stimmt^^

Z
ZeroQool Themenstarter:in
322 Beiträge seit 2006
vor 17 Jahren

@Puppetmaster

Ich meinte, dass der mit RETURN die Funktion beendet =) Habe das BREAK rausgenommen 😁 thx