Wächterklauseln
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy. Lektion 19 von 66.
Guard-Klauseln sind bedingte Anweisungen am Anfang einer Methode, die Grenzfälle oder ungültige Eingaben prüfen und frühzeitig zurückkehren, wenn diese Bedingungen erfüllt sind.
Erstellen wir eine Methode ohne eine Schutzklausel:
public void ProcessOrder(Order order)
{
if (order != null)
{
// Bestellung verarbeiten
// Viele Codezeilen hier...
}
}Schreiben wir es nun mit einer Guard-Klausel neu:
public void ProcessOrder(Order order)
{
if (order == null)
{
return; // Guard clause - früh beenden, wenn order null ist
}
// Die order verarbeiten
// Viele Codezeilen hier...
}Guard-Klauseln verbessern die Lesbarkeit, indem sie die Verschachtelung reduzieren und Ausnahmefälle am Anfang einer Methode behandeln.
Aufgabe
EinfachErstelle eine Methode namens DivideNumbers, die zwei Ganzzahlen, numerator und denominator, entgegennimmt.
- Füge eine Guard Clause hinzu, um zu prüfen, ob der Nenner null ist.
- Wenn der Nenner null ist, gib „Cannot divide by zero“ aus und gib 0 zurück.
- Andernfalls teile den Zähler durch den Nenner und gib das Ergebnis zurück.
Probier es selbst
using System;
public class Program
{
public static int DivideNumbers(int numerator, int denominator)
{
// Schreibe deinen Code hier
}
public static void Main()
{
// Lies Eingaben von der Konsole
int numerator = Convert.ToInt32(Console.ReadLine());
int denominator = Convert.ToInt32(Console.ReadLine());
// Rufe die DivideNumbers-Methode auf
int result = DivideNumbers(numerator, denominator);
// Gib das Ergebnis aus
Console.WriteLine(result);
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen 2D-Arrays2D-Arrays deklarieren und initialisierenAuf Elemente von 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysGezackte ArraysHäufige MatrixoperationenZusammenfassung – Mehrdimensionale Arrays4Techniken zur Ablaufsteuerung
Frühe RückgabenWächterklauselnSprunganweisungen (goto)Break und ContinueVerschachtelte Bedingungen abflachen7Logische Operatoren – Fortgeschritten
KurzschlussauswertungBedingte logische OperatorenOperatorrangfolgeRückblick – Erweiterte Operatoren2Fortgeschrittene Entscheidungslogik
Mehrere BedingungenKomplexe boolesche LogikVergleich: If vs. SwitchVerschachtelte Switch-AnweisungenRückblick – Fortgeschrittene Entscheidungen5Fehlerbehandlung mit Exceptions
Grundlagen von Try-CatchException-TypenMehrere Catch-BlöckeArbeiten mit DateienFinally-BlockUsing im Vergleich zu Try-FinallyBenutzerdefinierte ExceptionsZusammenfassung – Fehlerbehandlung3Schleifenverbesserungen
SchleifenleistungKomplexe IterationJeder SchleifentypSchleifen refaktorierenRückblick – Optimierte Schleifen6Behandlung von Nullwerten
Grundlagen von NullreferenzenNullable WerttypenMuster zur NullprüfungDefensive ProgrammierungZusammenfassung – NullsicherheitÜbe selbstständig: Online-C#-Compiler