Delegates und Lambdas erkunden
Verstehen Sie Delegates und Lambda-Ausdrücke für kompakten und flexiblen Code
Delegates und Lambdas erkunden ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 5. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 5 Lektionen.
Lambdas mit Delegates verwenden
Lambdas können Delegates direkt zugewiesen werden. Beispiel:

Was ist ein Delegate?
Ein Delegate ist ein Typ, der Verweise auf Methoden mit einer bestimmten Signatur enthält. Delegates ermöglichen es, Methoden als Parameter zu übergeben oder dynamisch zuzuweisen.
Beispiel: Delegates werden häufig für Rückrufe und die Ereignisbehandlung verwendet.
Delegates definieren und verwenden
Sie können einen Delegate mithilfe des Schlüsselworts delegate definieren. Beispiel:
Wichtiger Punkt: Delegates bieten eine Möglichkeit, Methoden zu kapseln.
using System;
class Program {
// Define a delegate
public delegate void PrintDelegate(string message);
static void Main() {
PrintDelegate print = PrintMessage; // Assign method to delegate
print("Hello, Delegates!"); // Call the method via the delegate
}
static void PrintMessage(string message) {
Console.WriteLine(message);
}
}
Was ist ein Lambda-Ausdruck?
Ein Lambda-Ausdruck ist eine prägnante Möglichkeit, eine anonyme Methode in C# darzustellen. Er verwendet die Syntax (parameters) => expression.
Beispiel: (x, y) => x + y stellt eine Methode dar, die zwei Zahlen addiert.
Tipp: Lambdas werden häufig mit LINQ und Delegates verwendet, um kürzeren und klareren Code zu schreiben.
Lambda-Ausdrücke mit Delegates
Lambdas mit Delegates verwenden
Lambdas können Delegates direkt zugewiesen werden. Beispiel:
Wichtiger Punkt: Lambdas machen Ihren Code kürzer und lesbarer.
using System;
class Program {
public delegate int MathOperation(int x, int y);
static void Main() {
MathOperation add = (x, y) => x + y; // Lambda for addition
Console.WriteLine("Result: " + add(10, 20)); // Outputs: Result: 30
}
}
Multicast-Delegates
Ein einzelner Delegate kann auf mehrere Methoden verweisen. Alle Methoden werden der Reihe nach aufgerufen. Beispiel:
using System;
class Program {
public delegate void Notify(string message);
static void Main() {
Notify notify = PrintMessage;
notify += LogMessage;
notify("Hello, Multicast Delegates!"); // Calls both methods
}
static void PrintMessage(string message) {
Console.WriteLine("Print: " + message);
}
static void LogMessage(string message) {
Console.WriteLine("Log: " + message);
}
}
Praxisaufgabe
Erstellen Sie ein Programm, das einen Delegate StringOperation verwendet, um Zeichenfolgen zu bearbeiten, beispielsweise durch die Umwandlung in Großbuchstaben und das Umkehren einer Zeichenfolge. Beispiel:
using System;
class Program {
public delegate string StringOperation(string input);
static void Main() {
StringOperation operations = ToUpperCase;
operations += ReverseString;
string input = "Hello";
foreach (var operation in operations.GetInvocationList()) {
Console.WriteLine(((StringOperation)operation)(input));
}
}
static string ToUpperCase(string input) {
return input.ToUpper();
}
static string ReverseString(string input) {
char[] chars = input.ToCharArray();
Array.Reverse(chars);
return new string(chars);
}
}
Bewährte Vorgehensweisen für Delegates und Lambdas
Hier sind einige bewährte Vorgehensweisen:
- Verwenden Sie Delegates, um Rückrufe und die Ereignisbehandlung zu implementieren.
- Bevorzugen Sie Lambda-Ausdrücke für kurzen und klaren Code.
- Kombinieren Sie Lambdas mit LINQ für eine effiziente Datenverarbeitung.
- Vermeiden Sie übermäßig komplexe Lambdas, damit der Code lesbar bleibt.
Tipp: Verwenden Sie aussagekräftige Parameternamen in Lambdas, um die Verständlichkeit des Codes zu verbessern.
Sehr gut!
Herzlichen Glückwunsch! Sie haben gelernt, wie Sie Delegates und Lambda-Ausdrücke verwenden, um funktionalen und ereignisgesteuerten Code in C# zu schreiben. In der nächsten Lektion beschäftigen wir uns mit Reflection in C#, einer leistungsfähigen Funktion zur Laufzeitanalyse von Typen. Programmieren wir weiter!

Lerne C# mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 93
- Lektionen
- 346
Häufig gestellte Fragen
Ist die Lektion „Delegates und Lambdas erkunden“ kostenlos?
Ja — der vollständige Text von „Delegates und Lambdas erkunden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 5 Lektionen.
Was lerne ich in „Delegates und Lambdas erkunden“?
Verstehen Sie Delegates und Lambda-Ausdrücke für kompakten und flexiblen Code Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C# Academy zu starten?
Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 5.
Wie lange dauert die Lektion „Delegates und Lambdas erkunden“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?
Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Generics in C#
- Async und Await: Mit asynchronem Code arbeiten
- Threading und Tasks verstehen
- Delegates und Lambdas erkunden
- Reflection in C# verstehen