Zum Hauptinhalt springen
Veröffentlicht am

goto und #region/#endregion in C#

Teilen:

Einführung

C# ist eine Sprache voller Funktionen, die, wenn sie richtig eingesetzt werden, den Code klarer, organisierter und effizienter machen können. In diesem Artikel werden wir zwei dieser Funktionen erkunden: die goto-Anweisung und die Direktiven #region und #endregion.

goto in C#

Die goto-Anweisung ist ein Werkzeug, das es uns ermöglicht, den Ausführungsfluss eines Programms zu ändern und ihn zu einem bestimmten Punkt zu leiten. Obwohl viele deren Verwendung als schlechte Praxis betrachten, gibt es Situationen, in denen sie die richtige Wahl sein kann.

Wann goto verwendet werden sollte:

  • In switch-Blöcken, um Codewiederholungen zu vermeiden.
  • In tief verschachtelten Schleifen, wo es notwendig ist, eine äußere Schleife von einer inneren Schleife aus zu verlassen.

Vorsichtsmaßnahmen bei goto:

  • Übermäßiger Einsatz kann den Code schwer lesbar und wartbar machen.
  • Es können logische Fehler eingeführt werden, wenn es nicht sorgfältig verwendet wird.

#region und #endregion in C#

Die Direktiven #region und #endregion bieten eine Möglichkeit, Code in visuelle Blöcke zu organisieren, was das Lesen und Bearbeiten in umfangreichen Klassen erleichtert.

Vorteile der Verwendung von #region und #endregion

  • Organisiert und gruppiert verwandte Funktionen oder Eigenschaften.
  • Hilft dabei, Implementierungsdetails zu verbergen, sodass sich Entwickler auf bestimmte Bereiche des Codes konzentrieren können.

Wann sie verwendet werden sollten

  • In umfangreichen Klassen, um verwandte Methoden zu gruppieren.
  • Um Test- oder Debugging-Code auszublenden, der nicht in der Produktionsumgebung sichtbar sein soll.
#region Bibliotheken
using System;
#endregion

namespace Base {
  class GotoUndRegionEndregion {
    #region Methode Run()
    public void Run() {
      Console.WriteLine($"Ergebnis der Methode GotoTesten(): {GotoTesten()}");
    }
    #endregion

    #region Methode GotoTesten()
    private int GotoTesten() {
      var nummer = 0;

      for (int i = 1; i <= 10; i++) {
        for (int j = i; j <= 10; j++) {
          for (int k = 0; k <= 10; k++) {
            if (j == 5 && k == 5)
              goto ErsteSchleife;
          }

          nummer++;
        }

        ErsteSchleife:
          continue;
      }

      return nummer;
    }
    #endregion
  }
}

Fazit

Obwohl goto und #region/#endregion ihre Kontroversen haben mögen, kann es entscheidend sein zu verstehen, wann und wie man sie einsetzt, um gut strukturierten und effizienten C#-Code zu erstellen. Der Schlüssel liegt darin, diese Werkzeuge mit Bedacht einzusetzen und die Auswirkungen ihrer Verwendung auf den Fluss und die Lesbarkeit des Codes zu verstehen.

Happy coding!