Utforske delegater og lambdaer
Forstå delegater og lambda-uttrykk for kortfattet og fleksibel kode
Utforske delegater og lambdaer er en gratis leksjon i C# Academy på CoddyKit. Dette er leksjon 4 av 5. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C# Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C# Academy inneholder totalt 5 leksjoner.
Bruke lambda-uttrykk med delegater
Lambda-uttrykk kan tilordnes direkte til delegater. Eksempel:

Hva er en delegat?
En delegat er en type som inneholder referanser til metoder med en bestemt signatur. Delegater gjør det mulig å sende metoder som parametere eller tilordne dem dynamisk.
Eksempel: Delegater brukes ofte til tilbakeringinger og hendelseshåndtering.
Definere og bruke delegater
Du kan definere en delegat ved hjelp av nøkkelordet delegate. Eksempel:
Viktig poeng: Delegater gjør det mulig å kapsle inn 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);
}
}
Hva er et lambda-uttrykk?
Et lambda-uttrykk er en kortfattet måte å representere en anonym metode på i C#. Det bruker syntaksen (parameters) => expression.
Eksempel: (x, y) => x + y representerer en metode som legger sammen to tall.
Tips: Lambda-uttrykk brukes ofte sammen med LINQ og delegater for å gjøre koden kortere og tydeligere.
Lambda-uttrykk med delegater
Bruke lambda-uttrykk med delegater
Lambda-uttrykk kan tilordnes direkte til delegater. Eksempel:
Viktig poeng: Lambda-uttrykk gjør koden kortere og enklere å lese.
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 enkelt delegat kan referere til flere metoder. Alle metodene kalles i rekkefølge. Eksempel:
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);
}
}
Øvingsoppgave
Opprett et program som bruker delegaten StringOperation til å utføre strengoperasjoner, for eksempel å konvertere en streng til store bokstaver og snu den. Eksempel:
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);
}
}
Beste praksis for delegater og lambda-uttrykk
Her er noen anbefalte fremgangsmåter:
- Bruk delegater til å implementere tilbakeringinger og hendelseshåndtering.
- Foretrekk lambda-uttrykk for kortfattet og tydelig kode.
- Kombiner lambda-uttrykk med LINQ for effektiv databehandling.
- Unngå overdrevent komplekse lambda-uttrykk for å bevare lesbarheten.
Tips: Bruk meningsfulle parameternavn i lambda-uttrykk for å gjøre koden tydeligere.
Godt jobbet!
Gratulerer! Du har lært hvordan du bruker delegater og lambda-uttrykk til å skrive funksjonell og hendelsesdrevet kode i C#. I neste leksjon skal vi utforske refleksjon i C#, en kraftig funksjon for typeanalyse under kjøring. La oss fortsette å kode!

Lær deg C# med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 93
- Leksjoner
- 346
Ofte stilte spørsmål
Er leksjonen «Utforske delegater og lambdaer» gratis?
Ja – hele teksten i «Utforske delegater og lambdaer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av C# Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i C# Academy inneholder totalt 5 leksjoner.
Hva lærer jeg i «Utforske delegater og lambdaer»?
Forstå delegater og lambda-uttrykk for kortfattet og fleksibel kode Du øver på C# Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med C# Academy?
Ingen tidligere erfaring er nødvendig. C# Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 5.
Hvor lang tid tar leksjonen «Utforske delegater og lambdaer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne C# Academy-leksjonen?
Ja. Alle C# Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Generics i C#
- Async og Await: Arbeide med asynkron kode
- Forstå tråder og oppgaver
- Utforske delegater og lambdaer
- Forstå refleksjon i C#