Heim > Backend-Entwicklung > C++ > Wie können Lambda -Ausdrücke die Wiederholungslogik in C#vereinfachen?

Wie können Lambda -Ausdrücke die Wiederholungslogik in C#vereinfachen?

Barbara Streisand
Freigeben: 2025-01-29 08:51:09
Original
776 Leute haben es durchsucht

How Can Lambda Expressions Simplify Retry Logic in C#?

Streamlining C# Logik mit Lambda -Ausdrücken

wiederholen

In C#ist die Wiederholung von Operationen eine häufige Aufgabe. Traditionelle Methoden beinhalten häufig explizite Wiederholungsschleifen, was zu ausführlichem und weniger wiederverwendbarem Code führt. Lambda -Ausdrücke bieten eine elegantere Lösung.

Dieses Beispiel zeigt eine wiederverwendbare Lambda-basierte Wiederholung:

public static class RetryHelper
{
    public static void Execute(Action action, TimeSpan retryInterval, int maxAttempts = 3)
    {
        Execute(() => { action(); return null; }, retryInterval, maxAttempts);
    }

    public static T Execute<T>(Func<T> action, TimeSpan retryInterval, int maxAttempts = 3)
    {
        var exceptions = new List<Exception>();

        for (int attempt = 0; attempt < maxAttempts; attempt++)
        {
            try
            {
                return action();
            }
            catch (Exception ex)
            {
                exceptions.Add(ex);
                if (attempt < maxAttempts - 1)
                {
                    Thread.Sleep(retryInterval);
                }
            }
        }
        throw new AggregateException("Retry attempts failed.", exceptions);
    }
}
Nach dem Login kopieren

Diese RetryHelper Klasse verkapselt die Wiederholung der Logik. Sie geben die Aktion (oder Funktion) zur Wiederholung, das Wiederholungsintervall und die maximale Anzahl von Versuchen an.

Verwendung ist einfach:

RetryHelper.Execute(() => SomeMethodThatMightFail(), TimeSpan.FromSeconds(2)); 
Nach dem Login kopieren

für Methoden, die einen Wert zurückgeben:

int result = RetryHelper.Execute(() => SomeMethodReturningInt(), TimeSpan.FromMilliseconds(500), 5);
Nach dem Login kopieren

Eine asynchrone Überlastung könnte für asynchronen Operationen leicht hinzugefügt werden. Dieser Ansatz bietet eine prägnante und wiederverwendbare Lösung für den Umgang mit Wiederholungslogik in C#.

Das obige ist der detaillierte Inhalt vonWie können Lambda -Ausdrücke die Wiederholungslogik in C#vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage