Kurzschlussauswertung
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy. Lektion 36 von 66.
Die Kurzschlussauswertung ist eine Optimierungstechnik in C#, bei der der zweite Operand der logischen AND- (&&) und OR-Operatoren (||) nur bei Bedarf ausgewertet wird.
Für das logische UND (&&) gilt: Wenn der erste Operand false ist, ist das Ergebnis unabhängig vom zweiten Operanden immer false:
bool result = false && SomeMethod();In diesem Beispiel wird SomeMethod() nicht aufgerufen, weil der erste Operand bereits false ist.
Bei einem logischen ODER (||) ist das Ergebnis immer true, wenn der erste Operand true ist, unabhängig vom zweiten Operanden:
bool result = true || SomeMethod();Hier wird SomeMethod() nicht aufgerufen, weil der erste Operand bereits true ist.
Dieses Verhalten kann verwendet werden, um Fehler zu vermeiden, zum Beispiel indem geprüft wird, ob ein Objekt null ist, bevor auf seine Eigenschaften zugegriffen wird:
// Sicher - wenn student null ist, wird die rechte Seite nicht ausgewertet
if (student != null && student.Grade > 70)
{
Console.WriteLine("Student passed!");
}Aufgabe
EinfachErstelle eine Methode namens ProcessUserInput, die zwei Argumente entgegennimmt:
- 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 wahr sind, „Valid input: “ gefolgt von der Eingabe ausgeben
- Wenn eine der Bedingungen nicht erfüllt ist, „Invalid input“ ausgeben
Verwende die Kurzschlussauswertung, um eine mögliche NullReferenceException zu verhindern.
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
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