Menu
Coddy logo textTech

Early Returns

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

Frühe Rückgaben sind eine Technik, bei der wir eine Methode verlassen, sobald wir die Antwort haben oder auf eine ungültige Bedingung stoßen, anstatt Bedingungen zu verschachteln.

Lassen Sie uns zwei Ansätze zum Validieren eines Benutzernamens vergleichen:

Ohne frühe Returns (verschachtelte Bedingungen):

public bool ValidateUsername(string username)
{
    bool isValid = false;
    
    if (username != null)
    {
        if (username.Length >= 3)
        {
            if (username.Length <= 20)
            {
                isValid = true;
            }
        }
    }
    
    return isValid;
}

Mit frühen Rückgaben:

public bool ValidateUsername(string username)
{
    // Return early if username is null
    if (username == null)
        return false;
        
    // Return early if username is too short
    if (username.Length < 3)
        return false;
        
    // Return early if username is too long
    if (username.Length > 20)
        return false;
        
    // If we get here, username is valid
    return true;
}

Frühe Returns machen den Code lesbarer und reduzieren die Einrückungsebenen.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Methode namens ProcessPayment, die bestimmt, ob eine Zahlung basierend auf Folgendem verarbeitet werden kann:

  1. Der Zahlungsbetrag muss positiv sein
  2. Der Kontostand muss ausreichend sein
  3. Das Konto darf nicht gesperrt sein

Verwenden Sie frühe Rückgaben, um jede Bedingung zu prüfen und geeignete Fehlermeldungen zurückzugeben.

Die Methode sollte:

  • Drei Parameter aufnehmen: decimal paymentAmount, decimal accountBalance und bool isAccountLocked
  • Einen String zurückgeben mit entweder "Payment processed successfully" oder einer Fehlermeldung
  • Frühe Rückgaben für die Validierung verwenden

Fehlermeldungen genau in diesen Formaten ausgeben:

  • "Error: Payment amount must be positive"
  • "Error: Insufficient funds"
  • "Error: Account is locked"

Spickzettel

Frühe Rückgaben verlassen eine Methode sofort, wenn eine Bedingung erfüllt ist, vermeiden verschachtelte Bedingungen und reduzieren die Einrückung.

Ohne frühe Rückgaben (verschachtelte Bedingungen):

public bool ValidateUsername(string username)
{
    bool isValid = false;
    
    if (username != null)
    {
        if (username.Length >= 3)
        {
            if (username.Length <= 20)
            {
                isValid = true;
            }
        }
    }
    
    return isValid;
}

Mit frühen Rückgaben:

public bool ValidateUsername(string username)
{
    // Früh zurückgeben, wenn username null ist
    if (username == null)
        return false;
        
    // Früh zurückgeben, wenn username zu kurz ist
    if (username.Length < 3)
        return false;
        
    // Früh zurückgeben, wenn username zu lang ist
    if (username.Length > 20)
        return false;
        
    // Wenn wir hier ankommen, ist username gültig
    return true;
}

Frühe Rückgaben machen den Code lesbarer und reduzieren die Einrückungsebenen.

Probier es selbst

using System;

public class Program
{
    public static string ProcessPayment(decimal paymentAmount, decimal accountBalance, bool isAccountLocked)
    {
        // Schreibe deinen Code hier
    }
    
    public static void Main(string[] args)
    {
        decimal paymentAmount = decimal.Parse(Console.ReadLine());
        decimal accountBalance = decimal.Parse(Console.ReadLine());
        bool isAccountLocked = bool.Parse(Console.ReadLine());
        
        string result = ProcessPayment(paymentAmount, accountBalance, isAccountLocked);
        Console.WriteLine(result);
    }
}
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