Menu
Coddy logo textTech

Short-Circuit Evaluation

Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 36 von 66.

Kurzschlussevaluierung ist eine Optimierungstechnik in C#, bei der das zweite Operand der logischen UND- (&&) und ODER- (||)-Operatoren nur bei Bedarf ausgewertet wird.

Für den logischen UND (&&), wenn der erste Operand false ist, ist das Ergebnis immer false, unabhängig vom zweiten Operand:

bool result = false && SomeMethod();

In diesem Beispiel wird SomeMethod() nicht aufgerufen, weil der erste Operand bereits false ist.

Für den logischen OR (||), wenn der erste Operand true ist, ist das Ergebnis immer true, unabhängig vom zweiten Operand:

bool result = true || SomeMethod();

Hier wird SomeMethod() nicht aufgerufen, weil das erste Operand bereits true ist.

Dieses Verhalten kann verwendet werden, um Fehler zu verhindern, wie z. B. das Überprüfen, ob ein Objekt null ist, bevor auf seine Eigenschaften zugegriffen wird:

// Safe - if student is null, the right side won't evaluate
if (student != null && student.Grade > 70)
{
    Console.WriteLine("Student passed!");
}
challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode namens ProcessUserInput, die zwei Argumente annimmt:

  • Eine Zeichenfolge (input)
  • Eine Ganzzahl (minLength)

Die Methode sollte:

  1. Prüfen, ob die Eingabe nicht null ist
  2. Prüfen, ob die Länge der Eingabe mindestens minLength beträgt
  3. Nur wenn beide Bedingungen erfüllt sind, "Valid input: " gefolgt von der Eingabe ausgeben
  4. Wenn eine der Bedingungen nicht erfüllt ist, "Invalid input" ausgeben

Verwenden Sie Kurzschlussevaluierung, um eine mögliche NullReferenceException zu verhindern.

Spickzettel

Short-Circuit-Auswertung ist eine Optimierungstechnik, bei der der zweite Operand logischer Operatoren nur dann ausgewertet wird, wenn es notwendig ist.

Für logischen AND (&&), wenn der erste Operand false ist, wird der zweite Operand nicht ausgewertet:

bool result = false && SomeMethod(); // SomeMethod() wird nicht aufgerufen

Für logischen OR (||), wenn der erste Operand true ist, wird der zweite Operand nicht ausgewertet:

bool result = true || SomeMethod(); // SomeMethod() wird nicht aufgerufen

Dies verhindert Fehler, indem Bedingungen in der richtigen Reihenfolge überprüft werden:

// Sicher – wenn student null ist, wird student.Grade nicht zugegriffen
if (student != null && student.Grade > 70)
{
    Console.WriteLine("Student passed!");
}

Probier es selbst

using System;

class ProcessUserInput
{
    public static void processUserInput(string input, int minLength)
    {
        // Schreibe deinen Code hier
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf