Utforska delegater och lambdauttryck
Förstå delegater och lambdauttryck för koncis och flexibel kod
Utforska delegater och lambdauttryck är en gratis lektion i C# Academy på CoddyKit. Detta är lektion 4 av 5. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C# Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C# Academy innehåller totalt 5 lektioner.
Använda lambda-uttryck med delegater
Lambda-uttryck kan tilldelas delegater direkt. Exempel:

Vad är en delegat
Vad är en delegat?
En delegat är en typ som innehåller referenser till metoder med en specifik signatur. Delegater gör det möjligt att skicka metoder som parametrar eller tilldela dem dynamiskt.
Exempel: Delegater används ofta för callback-funktioner och händelsehantering.
Definiera och använda delegater
Ni kan definiera en delegat med hjälp av nyckelordet delegate. Exempel:
Viktig punkt: Delegater erbjuder ett sätt att kapsla in metoder.
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);
}
}
Vad är ett lambda-uttryck
Vad är ett lambda-uttryck?
Ett lambda-uttryck är ett kortfattat sätt att representera en anonym metod i C#. Det använder syntaxen (parameters) => expression.
Exempel: (x, y) => x + y representerar en metod som adderar två tal.
Tips: Lambda-uttryck används ofta tillsammans med LINQ och delegater för kortare och tydligare kod.
Lambda-uttryck med delegater
Använda lambda-uttryck med delegater
Lambda-uttryck kan tilldelas delegater direkt. Exempel:
Viktig punkt: Lambda-uttryck gör koden kortare och mer lättläst.
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-delegater
En enskild delegat kan referera till flera metoder. Alla metoder anropas i tur och ordning. Exempel:
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);
}
}
Övningsuppgift
Skapa ett program som använder en delegat StringOperation för att utföra strängbearbetning, till exempel konvertera en sträng till versaler och vända på den. Exempel:
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);
}
}
Bästa praxis för delegater och lambda-uttryck
Här följer några rekommenderade arbetssätt:
- Använd delegater för att implementera callback-funktioner och händelsehantering.
- Föredra lambda-uttryck för kortfattad och tydlig kod.
- Kombinera lambda-uttryck med LINQ för effektiv databearbetning.
- Undvik alltför komplexa lambda-uttryck för att bevara läsbarheten.
Tips: Använd meningsfulla parameternamn i lambda-uttryck för att göra koden tydligare.
Bra jobbat!
Grattis! Ni har lärt er att använda delegater och lambda-uttryck för att skriva funktionell och händelsestyrd kod i C#. I nästa lektion utforskar vi reflection i C#, en kraftfull funktion för typanalys under körning. Fortsätt koda!

Lär dig C# med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 93
- Lektioner
- 346
Vanliga frågor
Är lektionen ”Utforska delegater och lambdauttryck” gratis?
Ja – hela texten till ”Utforska delegater och lambdauttryck” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C# Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C# Academy innehåller totalt 5 lektioner.
Vad lär jag mig i ”Utforska delegater och lambdauttryck”?
Förstå delegater och lambdauttryck för koncis och flexibel kod Ni övar på C# Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig C# Academy?
Du behöver inga förkunskaper. Utbildningen i C# Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 5.
Hur lång tid tar lektionen ”Utforska delegater och lambdauttryck”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här C# Academy-lektionen?
Ja. Varje C# Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Generiska typer i C#
- Async och await: arbeta med asynkron kod
- Förstå trådar och aktiviteter
- Utforska delegater och lambdauttryck
- Förstå reflection i C#