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!");
}Aufgabe
EinfachErstellen Sie eine Methode namens ProcessUserInput, die zwei Argumente annimmt:
- Eine Zeichenfolge (
input) - Eine Ganzzahl (
minLength)
Die Methode sollte:
- Prüfen, ob die Eingabe nicht null ist
- Prüfen, ob die Länge der Eingabe mindestens
minLengthbeträgt - Nur wenn beide Bedingungen erfüllt sind, "Valid input: " gefolgt von der Eingabe ausgeben
- 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 aufgerufenFür logischen OR (||), wenn der erste Operand true ist, wird der zweite Operand nicht ausgewertet:
bool result = true || SomeMethod(); // SomeMethod() wird nicht aufgerufenDies 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
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety